1.引入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
2.在application.properties编写mysql配置信息
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://localhost:3306/keqian?serverTimezone=Asia/Shanghai
spring.datasource.druid.username=root
spring.datasource.druid.password=123456
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
3.创建实体类
@Data
public class TblEmp {
private long id;
private String name;
private double salary;
private java.sql.Timestamp birthday;
private long deptId;
private String headImg;
@TableField(exist = false)
private TblDept tblDept;
}
@Data
public class TblDept {
private long id;
private String dName;
private String loc;
}
返回结果类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result {
private Integer code;
private String msg;
private Object data;
}
4.编写dao,mapper映射文件
public interface TblEmpDao extends BaseMapper<TblEmp> {
IPage<TblEmp> selecEmpWithDeptPage(IPage<TblEmp> page, @Param("ew") Wrapper<TblEmp> queryWrapper);
}
<?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.example.dao.TblEmpDao">
<resultMap id="empMapper" type="com.example.entity.TblEmp" autoMapping="true">
<id property="id" column="id"/>
<association property="tblDept" javaType="com.example.entity.TblDept" autoMapping="true">
<id property="id" column="id"/>
<result property="dName" column="d_name"/>
</association>
</resultMap>
<select id="selecEmpWithDeptPage" resultMap="empMapper">
select * from tbl_emp e join tbl_dept d on e.dept_id=d.id
<if test="ew!=null and ew.customSqlSegment!=null">
${ew.customSqlSegment}
</if>
</select>
</mapper>
5. service与其实现类
public interface TblEmpDaoSercice {
Result selectAll(Integer current,Integer pagesize);
}
@Service
public class TblEmpServiceImpl implements TblEmpDaoSercice {
@Autowired
private TblEmpDao tblEmpDao;
@Override
public Result selectAll(Integer current, Integer pagesize) {
IPage<TblEmp> page = new Page(current, pagesize);
QueryWrapper<TblEmp> tblEmpQueryWrapper = new QueryWrapper<>();
IPage<TblEmp> tblEmpIPage = tblEmpDao.selecEmpWithDeptPage(page, tblEmpQueryWrapper);
Result result = new Result(200, "查询成功", tblEmpIPage);
return result;
}
}
6.controller层
@RestController
@RequestMapping("/emp")
public class TblEmpController {
@Autowired
private TblEmpDaoSercice tblEmpDaoSercice;
@GetMapping("/sel")
public Result selectAll(Integer current,Integer pagesize){
Result result = tblEmpDaoSercice.selectAll(current, pagesize);
return result;
}
}
7.分页配置类
@Configuration
public class PageConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);
return mybatisPlusInterceptor;
}
}
8.springboot启动添加扫描注解
@SpringBootApplication
@MapperScan(basePackages = "com.example.dao")
public class SbssmpbijiApplication {
public static void main(String[] args) {
SpringApplication.run(SbssmpbijiApplication.class, args);
}
}