mybatis-plus自定义多表分页查询

本文介绍了如何在mybatis-plus中进行多表分页查询。通过创建VO类整合多个表的数据,编写XML映射文件,配置mapper和实现类,最终在controller中实现分页查询。在解决问题的过程中,由于忽视了mybatis-plus的驼峰命名规则,导致查询结果为空,修复这一问题后,多表分页查询成功运行。
摘要由CSDN通过智能技术生成

mybati-plus多表分页查询

首先编写VO类,VO类包含了要查询的字段值,现在有如下几个表

blog表

@Data
public class Blog {
   
    @TableId(value = "blog_id", type = IdType.AUTO)
    private long blog_id; // 主键
    private String blog_title;
    private Timestamp blog_date;
    private String  blog_content;
    private String blog_cover;
    private String blog_description;
    private long user_id;
    private boolean blog_show;
}

blogData表

@Data
@TableName("blogdata")
public class BlogData {
   
    private long blog_id; // blog表的主键
    private int blog_likes;
    private int blog_browse;
}

CategoryBlog表

@Data
public class CategoryBlog {
   
    private int category_id;
    private long blog_id; // blog表的主键
}

label表

@Data
public class labelBlog {
   
    private int label_id;
    private long blog_id; // blog表的主键
}

现在我的需求就是查询blog的内容、标签、分类、点赞量和浏览量,这些数据分别村放在4个表中,那么我就需要将这4个表重新整合成一个类,那么新建一个NewBlogVo类

@Data
public class NewBlogVo {
   
    private long blog_id;
    private String blog_title;
    private Timestamp blog_date
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Mybatis-Plus是一个Mybatis的增强工具,它提供了很多方便的功能,其中包括自定义分页查询自定义分页查询可以通过继承Mybatis-Plus的BaseMapper接口来实现。在自定义的Mapper接口中,可以定义一个方法,使用@Param注解来指定查询条件,使用Page对象来指定分页信息。 例如,定义一个自定义Mapper接口: public interface MyCustomMapper extends BaseMapper<User> { List<User> selectUserByAge(@Param("age") Integer age, Page<User> page); } 在这个接口中,我们定义了一个selectUserByAge方法,它接收一个age参数和一个Page对象。在方法中,我们可以使用Mybatis-Plus提供的Wrapper对象来构造查询条件,然后使用selectPage方法来执行查询。 例如,我们可以这样实现selectUserByAge方法: @Override public List<User> selectUserByAge(Integer age, Page<User> page) { QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.eq("age", age); return baseMapper.selectPage(page, wrapper).getRecords(); } 在这个实现中,我们使用QueryWrapper对象来构造查询条件,然后使用baseMapper的selectPage方法来执行查询。最后,我们返回查询结果中的记录列表。 使用自定义分页查询时,我们可以在Controller中使用Page对象来指定分页信息,例如: @GetMapping("/users") public Page<User> getUsers(@RequestParam Integer age, @RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "10") Integer pageSize) { Page<User> page = new Page<>(pageNum, pageSize); List<User> users = myCustomMapper.selectUserByAge(age, page); page.setRecords(users); return page; } 在这个Controller中,我们使用@RequestParam注解来指定查询条件,然后使用Page对象来指定分页信息。最后,我们调用自定义Mapper接口的selectUserByAge方法来执行查询,然后将查询结果设置到Page对象中并返回。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值