Spring Boot 集成 mybatis plus
第一步 引入依赖
xml
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.10.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-jsqlparser</artifactId>
<version>3.5.10.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.15</version>
</dependency>
第二步 引入配置
yml
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/boot?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=Asia/Shanghai
username: root
password: 123456
mybatis-plus:
mapper-locations: classpath:/mapper/*Mapper.xml
global-config:
banner: false
db-config:
id-type: ASSIGN_ID
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
call-setters-on-nulls: true
第三步 引入配置类
java
@Configuration
@MapperScan("com.demo.Mapper")
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 配置分页插件
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
// 增加@Version乐观锁支持
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor;
}
}
第四步 代码编写
实体类
java
@TableName("t_emp")
public class Emp {
@TableId(value = "emp_id")
private int empId; // 注意:在Java中通常使用驼峰命名法,因此emp_id变为empId
@TableField(value = "emp_name" , exist = true)
private String empName;
private Integer age;
private Character sex;
private String email;
// 无参构造函数
public Emp() {
}
// 全部参数的构造函数
public Emp(int empId, String empName, Integer age, Character sex, String email) {
this.empId = empId;
this.empName = empName;
this.age = age;
this.sex = sex;
this.email = email;
}
// Getter和Setter方法
public int getEmpId() {
return empId;
}
public void setEmpId(int empId) {
this.empId = empId;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Character getSex() {
return sex;
}
public void setSex(Character sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
String ret = "Emp{" +
"empId=" + empId +
", empName='" + empName + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
", email='" + email + '\'' +
'}';
return ret;
}
}
编写mapper接口
java
@Mapper
public interface EmpMapper extends BaseMapper<Emp> {
Emp selectEmpById(int empId);
List<Emp> selectAllEmp(@RequestParam("dto") Emp emp);
@Select("SELECT * FROM t_emp WHERE 1=1")
IPage<Emp> selectEmpPage(IPage<Emp> page);
@Select("SELECT * FROM t_emp WHERE 1=1")
List<Emp> selectEmpList(IPage<Emp> page);
}
编写mapper的sql映射文件
xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.demo.mapper.EmpMapper">
<select id="selectEmpById" resultType="com.demo.entity.Emp">
select * from t_emp where emp_id = #{empId}
</select>
<select id="selectAllEmp" resultType="com.demo.entity.Emp">
select * from t_emp
</select>
</mapper>
编写service类
java
@Service
public class EmpServiceImpl extends ServiceImpl<EmpMapper, Emp> implements EmpService {
private static Logger logger = LoggerFactory.getLogger(EmpServiceImpl.class);
public Emp selectEmpById(int empId) {
return baseMapper.selectEmpById(empId);
}
public List<Emp> selectAllEmp(Emp emp) {
return baseMapper.selectAllEmp(emp);
}
public int insertEmp(Emp emp) {
return baseMapper.insert(emp);
}
public Page<Emp> selectEmpPage(Page<Emp> page) {
LambdaQueryWrapper <Emp> wrapper = new LambdaQueryWrapper<>();
return baseMapper.selectPage(page,wrapper);
}
@Override
public void updateEmp(Emp emp) {
baseMapper.updateById(emp);
}
@Override
public void deleteEmp(int empId) {
baseMapper.deleteById(empId);
}
}
java
public interface EmpService {
Emp selectEmpById(int empId);
List<Emp> selectAllEmp(Emp emp);
int insertEmp(Emp emp);
Page<Emp> selectEmpPage(Page<Emp> page);
void updateEmp(Emp emp);
void deleteEmp(int empId);
}
第五步 测试
java
@RestController
@RequestMapping("test")
public class TestController {
@Autowired
private RedisUtils redisUtils;
@Autowired
private EmpService empService;
@RequestMapping("/hello")
public String hello() {
redisUtils.set("test1","hello world");
System.out.println(redisUtils.get("test1"));
List<Emp> emps = empService.selectAllEmp(null);
System.out.println(emps);
return "hello";
}
}