Mybatis-plus做分页和联表查询

本文详细介绍了在SpringBoot项目中使用Mybatis-plus进行分页查询和联表查询的方法。通过示例代码展示了如何在Controller、Service、ServiceImpl和Dao层操作,以及如何自定义查询方法。此外,还解释了如何处理联表查询,通过实例演示了如何在Video实体类中添加额外属性,并重写Service方法以满足需求。
摘要由CSDN通过智能技术生成

目录

前言

示例

分页查询的几种方式

联表查询


前言

Mybatis-plus中自定义的sql语句调用QueryWrapper实现查询及分页IPage使用 一文中,我本来是用的别人写的Mybatis Plus分页,不过现在链接失效了,所以就决定自己写一下了.

以下均是在SpringBoot项目中使用MybatisPlus的示例.

另外有人指出没有联表查询,所以更新一下补充上去。

示例

首先先从代码上看一下我在框架中是如何使用的分页:

注: AboutusHomepage是实体类

1.Controller:

    @RequestMapping
    public String index(@RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo,
                        @RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize,
                        Model model, String updatetimeSpace, AboutusHomepage aboutusHomepage) {
        Page<AboutusHomepage> page = new Page<>(pageNo, pageSize);

        //用QueryWrapper做条件查询
        QueryWrapper<AboutusHomepage> queryWrapper = new QueryWrapper<>();
        if(!ObjectUtils.isEmpty(aboutusHomepage.getTitle())) {
            queryWrapper = queryWrapper.like("title",aboutusHomepage.getTitle());
         }
        if(!ObjectUtils.isEmpty(aboutusHomepage.getBackgroundPicture())) {
            queryWrapper = queryWrapper.like("background_picture",aboutusHomepage.getBackgroundPicture());
         }
        //使用MybatisPlus自带的page方法做有条件的分页查询
        IPage<AboutusHomepage> pageInfo = aboutusHomepageService.page(page, queryWrapper);
        model.addAttribute("updatetimeSpace", updatetimeSpace);
        model.addAttribute("searchInfo", aboutusHomepage);
        model.addAttribute("pageInfo", new PageInfo(pageInfo)
  • 10
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
MyBatis-Plus是一个增强版的MyBatis框架,它提供了更方便的数据库操作功能。在进行联表分页查询时,可以使用MyBatis-Plus提供的LambdaQueryWrapper和Page类来实现。 首先,确保已经准备好数据库结构以及数据,并添加了MyBatis-Plus的依赖。 然后,在配置类中启用MyBatis-Plus的join功能,可以通过在DataScopeSqlInjector类中添加@Mapper注解来实现。 接下来,在实体类中定义需要查询的字段,并生成对应的Mapper接口。 在Service类中,可以使用LambdaQueryWrapper构建查询条件,并调用mapper的selectPage方法进行分页查询。使用Page对象指定分页参数,包括当前页码和每页显示的记录数。 最后,在测试类中调用Service的方法进行查询,并打印结果。 以下是示例代码: ```java // 实体类 @Data public class User { private Long id; private String name; private Integer age; private String email; } // Mapper接口 public interface UserMapper extends BaseMapper<User> { } // Service类 @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { @Override public IPage<User> getUserListWithPage(int pageNum, int pageSize) { Page<User> page = new Page<>(pageNum, pageSize); LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(User::getAge, 20); return baseMapper.selectPage(page, queryWrapper); } } // 测试类 @RunWith(SpringRunner.class) @SpringBootTest public class UserServiceImplTest { @Autowired private UserService userService; @Test public void testGetUserListWithPage() { int pageNum = 1; int pageSize = 10; IPage<User> userPage = userService.getUserListWithPage(pageNum, pageSize); List<User> userList = userPage.getRecords(); for (User user : userList) { System.out.println(user); } } } ``` 以上是使用MyBatis-Plus进行联表分页查询的方法。如果有任何问题,请随时提问。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值