springboot+mybatis-plus分页连表查询

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);
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值