当前位置: 首页 > news >正文

山西两学一做网站网站开发实训要求

山西两学一做网站,网站开发实训要求,网站响应式与电脑版有什么区别,阿里云网站怎么做文章目录Mybatis入门快速入门JDBC介绍JDBC介绍数据库连接池lombokMybatis基础增删改查准备删除插入新增更新查询XML映射文件Mybatis动态SQL< if >< foreach >< sql >< include >Mybatis入门 快速入门 public class User {private Integer id;private S…

文章目录

  • Mybatis入门
    • 快速入门
    • JDBC介绍
    • JDBC介绍
    • 数据库连接池
    • lombok
  • Mybatis基础增删改查
    • 准备
    • 删除
    • 插入
    • 新增
    • 更新
    • 查询
  • XML映射文件
  • Mybatis动态SQL
    • < if >
    • < foreach >
    • < sql >< include >

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Mybatis入门

在这里插入图片描述

快速入门

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

public class User {private Integer id;private String name;private Short age;private Short gender;private String phone;public User() {}public User(Integer id, String name, Short age, Short gender, String phone) {this.id = id;this.name = name;this.age = age;this.gender = gender;this.phone = phone;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Short getAge() {return age;}public void setAge(Short age) {this.age = age;}public Short getGender() {return gender;}public void setGender(Short gender) {this.gender = gender;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}@Overridepublic String toString() {return "User{" +"id=" + id +", name='" + name + '\'' +", age=" + age +", gender=" + gender +", phone='" + phone + '\'' +'}';}
}

JDBC介绍

#配置数据库的连接信息 - 四要素
#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
#连接数据库的用户名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=...
package com.itheima.mapper;import com.itheima.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;@Mapper //在运行时,会自动生成该接口的实现类对象(代理对象), 并且将该对象交给IOC容器管理
public interface UserMapper {//查询全部用户信息@Select("select * from user")public List<User> list();}
package com.itheima;import com.itheima.mapper.UserMapper;
import com.itheima.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.sql.*;
import java.util.ArrayList;
import java.util.List;@SpringBootTest //springboot整合单元测试的注解
class SpringbootMybatisQuickstartApplicationTests {@Autowiredprivate UserMapper userMapper;@Testpublic void testListUser(){List<User> userList = userMapper.list();userList.stream().forEach(user -> {System.out.println(user);});}
}

在这里插入图片描述
在这里插入图片描述

JDBC介绍

在这里插入图片描述

在这里插入图片描述

package com.itheima;import com.itheima.mapper.UserMapper;
import com.itheima.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.sql.*;
import java.util.ArrayList;
import java.util.List;@SpringBootTest //springboot整合单元测试的注解
class SpringbootMybatisQuickstartApplicationTests {@Autowiredprivate UserMapper userMapper;@Testpublic void testListUser(){List<User> userList = userMapper.list();userList.stream().forEach(user -> {System.out.println(user);});}@Testpublic void testJdbc() throws Exception {//1. 注册驱动Class.forName("com.mysql.cj.jdbc.Driver");//2. 获取连接对象String url = "jdbc:mysql://localhost:3306/mybatis";String username = "root";String password = "...";Connection connection = DriverManager.getConnection(url, username, password);//3. 获取执行SQL的对象Statement,执行SQL,返回结果String sql = "select * from user";Statement statement = connection.createStatement();ResultSet resultSet = statement.executeQuery(sql);//4. 封装结果数据List<User> userList = new ArrayList<>();while (resultSet.next()){int id = resultSet.getInt("id");String name = resultSet.getString("name");short age = resultSet.getShort("age");short gender = resultSet.getShort("gender");String phone = resultSet.getString("phone");User user = new User(id,name,age,gender,phone);userList.add(user);}//5. 释放资源statement.close();connection.close();//5. 释放资源statement.close();connection.close();userList.stream().forEach(user -> {System.out.println(user);});}
}

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

数据库连接池

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

#配置数据库的连接信息 - 四要素
#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
#连接数据库的用户名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=...

用druid的话,datasource.druid中druid可省略!也就是要从默认切换Druid,只需添加Druid依赖
在这里插入图片描述
在这里插入图片描述

lombok

在这里插入图片描述
在这里插入图片描述

package com.itheima.pojo;import lombok.*;//@Getter
//@Setter
//@ToString
//@EqualsAndHashCode@Data
@NoArgsConstructor //无参构造
@AllArgsConstructor //全参构造
public class User {private Integer id;private String name;private Short age;private Short gender;private String phone;/*public User() {}public User(Integer id, String name, Short age, Short gender, String phone) {this.id = id;this.name = name;this.age = age;this.gender = gender;this.phone = phone;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Short getAge() {return age;}public void setAge(Short age) {this.age = age;}public Short getGender() {return gender;}public void setGender(Short gender) {this.gender = gender;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}@Overridepublic String toString() {return "User{" +"id=" + id +", name='" + name + '\'' +", age=" + age +", gender=" + gender +", phone='" + phone + '\'' +'}';}*/
}

Mybatis基础增删改查

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

准备

在这里插入图片描述
在这里插入图片描述

删除

在这里插入图片描述

    //根据ID删除数据@Delete("delete from emp where id = #{id}")public void delete(Integer id);//public int delete(Integer id);
    //根据ID删除@Testpublic void testDelete(){//int delete = empMapper.delete(16);//System.out.println(delete);empMapper.delete(16);}

插入

在这里插入图片描述

#指定mybatis输出日志的位置,输出控制台
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

新增

在这里插入图片描述

    //新增员工@Insert("insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time, update_time)" +" values (#{username},#{name},#{gender},#{image},#{job},#{entrydate},#{deptId},#{createTime},#{updateTime})")public void insert(Emp emp);
 //新增员工@Testpublic void testInsert(){//构造员工对象Emp emp = new Emp();emp.setUsername("Tom3");emp.setName("汤姆3");emp.setImage("1.jpg");emp.setGender((short)1);emp.setJob((short)1);emp.setEntrydate(LocalDate.of(2000,1,1));emp.setCreateTime(LocalDateTime.now());emp.setUpdateTime(LocalDateTime.now());emp.setDeptId(1);//执行新增员工信息操作empMapper.insert(emp);}

在这里插入图片描述

    //新增员工@Options(useGeneratedKeys = true, keyProperty = "id")@Insert("insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time, update_time)" +" values (#{username},#{name},#{gender},#{image},#{job},#{entrydate},#{deptId},#{createTime},#{updateTime})")public void insert(Emp emp);
        System.out.println(emp.getId());

在这里插入图片描述

更新

在这里插入图片描述

    //更新员工@Update("update emp set username = #{username}, name = #{name}, gender = #{gender}, image = #{image}," +" job = #{job}, entrydate = #{entrydate}, dept_id = #{deptId},update_time = #{updateTime} where id = #{id}")public void update(Emp emp);
    //更新员工@Testpublic void testUpdate(){//构造员工对象Emp emp = new Emp();emp.setId(18);emp.setUsername("Tom1");emp.setName("汤姆1");emp.setImage("1.jpg");emp.setGender((short)1);emp.setJob((short)1);emp.setEntrydate(LocalDate.of(2000,1,1));emp.setUpdateTime(LocalDateTime.now());emp.setDeptId(1);//执行更新员工操作empMapper.update(emp);}

查询

在这里插入图片描述

#开启mybatis的驼峰命名自动映射开关
mybatis.configuration.map-underscore-to-camel-case=true
  //方案三: 开启mybatis的驼峰命名自动映射开关 --- a_cloumn ------> aColumn//根据ID查询员工@Select("select * from emp where id = #{id}")public Emp getById(Integer id);//方案一: 给字段起别名, 让别名与实体类属性一致//@Select("select id, username, password, name, gender, image, job, entrydate, " +//        "dept_id deptId, create_time createTime, update_time updateTime from emp where id = #{id}")//public Emp getById(Integer id);//方案二: 通过@Results, @Result注解手动映射封装//@Results({//        @Result(column = "dept_id", property = "deptId"),//        @Result(column = "create_time", property = "createTime"),//        @Result(column = "update_time", property = "updateTime")//})//@Select("select * from emp where id = #{id}")//public Emp getById(Integer id);
  //更新员工@Testpublic void testUpdate(){//构造员工对象Emp emp = new Emp();emp.setId(18);emp.setUsername("Tom1");emp.setName("汤姆1");emp.setImage("1.jpg");emp.setGender((short)1);emp.setJob((short)1);emp.setEntrydate(LocalDate.of(2000,1,1));emp.setUpdateTime(LocalDateTime.now());emp.setDeptId(1);//执行更新员工操作empMapper.update(emp);}

在这里插入图片描述
在这里插入图片描述

    //条件查询员工//方式一@Select("select * from emp where name like '%${name}%' and gender = #{gender} and " +"entrydate between #{begin} and #{end} order by update_time desc ")public List<Emp> list(String name, Short gender, LocalDate begin , LocalDate end);
    //方式二@Select("select * from emp where name like concat('%',#{name},'%') and gender = #{gender} and " +"entrydate between #{begin} and #{end} order by update_time desc ")public List<Emp> list(String name, Short gender, LocalDate begin , LocalDate end);

在这里插入图片描述

XML映射文件

在这里插入图片描述

    //动态条件查询public List<Emp> list(String name, Short gender, LocalDate begin , LocalDate end);
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.mapper.EmpMapper"><select id="list" resultType="com.itheima.pojo.Emp">select *from empwhere name like concat('%', #{name}, '%')and gender = #{gender}and entrydate between #{begin} and #{end}order by update_time desc</select></mapper>

在这里插入图片描述

在这里插入图片描述


在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Mybatis动态SQL

在这里插入图片描述
在这里插入图片描述

< if >

在这里插入图片描述

    <!--resultType: 单条记录封装的类型--><select id="list" resultType="com.itheima.pojo.Emp">select *from emp<where><if test="name != null">and name like concat('%', #{name}, '%')</if><if test="gender != null">and gender = #{gender}</if><if test="begin != null and end != null">and entrydate between #{begin} and #{end}</if></where>order by update_time desc</select>
</mapper>

在这里插入图片描述

    //动态更新员工public void update2(Emp emp);
            <!-- 动态更新员工--><update id="update2">update emp<set><if test="username != null">username = #{username},</if><if test="name != null">name = #{name},</if><if test="gender != null">gender = #{gender},</if><if test="image != null">image = #{image},</if><if test="job != null">job = #{job},</if><if test="entrydate != null">entrydate = #{entrydate},</if><if test="deptId != null">dept_id = #{deptId},</if><if test="updateTime != null">update_time = #{updateTime}</if></set>where id = #{id}</update>
  //动态更新员工 - 更新ID为18的员工 username 更新为 Tom111, name更新为 汤姆111, gender更新为2@Testpublic void testUpdate2(){//构造员工对象Emp emp = new Emp();emp.setId(19);emp.setUsername("Tom222333");
//        emp.setName("汤姆222");
//        emp.setGender((short)1);
//        emp.setUpdateTime(LocalDateTime.now());//执行更新员工操作empMapper.update2(emp);}

在这里插入图片描述

< foreach >

在这里插入图片描述

    //批量删除员工public void deleteByIds(List<Integer> ids);
  <!--批量删除员工 (18,19,20)--><!--collection: 遍历的集合item: 遍历出来的元素separator: 分隔符open: 遍历开始前拼接的SQL片段close: 遍历结束后拼接的SQL片段--><delete id="deleteByIds">delete  from emp where id in<foreach collection="ids" item="id" separator="," open="(" close=")">#{id}</foreach></delete>
    //批量删除员工 - 13,14,15@Testpublic void testDeleteByIds(){List<Integer> ids = Arrays.asList(13, 14, 15);empMapper.deleteByIds(ids);}

< sql >< include >

在这里插入图片描述

    <sql id="commonSelect">select id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_timefrom emp</sql>
   <!--resultType: 单条记录封装的类型--><select id="list" resultType="com.itheima.pojo.Emp"><include refid="commonSelect"/><where><if test="name != null">name like concat('%', #{name}, '%')</if><if test="gender != null">and gender = #{gender}</if><if test="begin != null and end != null">and entrydate between #{begin} and #{end}</if></where>order by update_time desc</select>

在这里插入图片描述

http://www.dtcms.com/a/460128.html

相关文章:

  • 旅游网站制作视频百度云怎么做电影引流网站
  • 公司电商网站建设新渝网门户网
  • 九江建网站多少钱都江堰市网站建设
  • 网站首页代码在哪里正常网站 月均ip pv
  • 郑州给公司做网站的公司手机优化大师官方免费下载
  • 如何制作自己的网站百度搜不到网站
  • 网站建设包括啥长沙铭万做网站
  • 做网站找我网站建设需要学ps吗
  • 网站开发公司云鲸互创怎么联系网站开发工程师
  • 建站源码下载wordpress排行小工具
  • C 建设个人网站仿《快乐麻花》网站源码
  • 购物网站管理系统中标信息查询
  • 大连做网站哪家公司好软件开发岗位介绍
  • 吉林网站开发公司网站做地图地址
  • 做网站公外贸公司属于什么企业
  • 网站建设 意见征集如何做互联网营销
  • 西安做网站 送百度首页2019做什么类型网站
  • seo优化网站网页教学包装设计的意义
  • 做网站用什么语言数据库专门做招商的网站是什么意思
  • 网站统计排名东莞市官网网站建设平台
  • 用php做网站难吗centos怎么安装wordpress
  • 国外网站设计 网址启东网站建设公司
  • 教育网站开发需求分析中企动力销售工作内容
  • 网站开发项目经理注意事项没有网站可以做seo
  • 怎么制作网站首页做网站不好做
  • 沧州哪家做网站好猪八戒logo设计网站
  • 商城网站建设模板网络服务停用
  • 材料信息价查询网站品牌建设公司排名
  • 网站建设应该考虑哪些问题廊坊seo外包服务
  • 重庆网站建设招聘网络设计专业学什么