Mybaties:持久层架构 用于简化JDBC开发
案例:
JDBC:
数据库连接池
导入druid依赖:
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.8</version> </dependency>
springboot默认:hikari
lombok:解决实体类臃肿
引入lombok依赖:
<dependency> <groupId>org.project.lombok</groupId> <artifactId>lombok</artifactId> </dependency>
案例:
Mybatis基础操作:
@Delete("delete from emp where id = #{id}")
占位符 #{}中间写参数
删除:
@Mapper public interface EmpMapper { @Delete("delete from emp where id = #{id}") public void delete(Integer id); }
@Autowired private EmpMapper empMapper; @Test public void testDelete(){ empMapper.delete(17); }
打开Mybatis日志
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/db01 spring.datasource.username=root spring.datasource.password=hsp mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
新增:
public void testInsert(){ Emp emp = new Emp(); emp.setUsername("Tom"); emp.setName("汤姆"); emp.setImage("1.rpg"); emp.setGender((short)1); emp.setJob((short)1); emp.setEntrydate(LocalDate.of(2020,01,01)); emp.setCreateTime(LocalDateTime.now()); emp.setUpdateTime(LocalDateTime.now()); emp.setDeptId(1); empMapper.insert(emp); }
@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); }
新增(主键返回):
@Options(useGeneratedKeys = true,keyProperty = "id")//表示返回主键 并封装到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);