查询

(1).批量查询

  1. //批量查询
  2. @Test
  3. public void BatchQuery() {
  4. /**
  5. * 批量查询ID为1,2,3,4的用户
  6. * */
  7. List<User> users = userMapper.selectBatchIds(Arrays.asList(1, 2, 3, 4));
  8. System.out.println(users);
  9. }

(2).条件查询

  //条件查询

    @Test
    public void conditionQuery() {
        /**
         *   查询name = 张无忌,age= 25
         *
         * */
        Map<String, Object> columnMap = new HashMap<>();
        columnMap.put("name","张无忌");
        columnMap.put("age", 25);
        List<User> users = userMapper.selectByMap(columnMap);
    }

分页查询

(1).分页插件
在Config包中的MpCnnfig类添加分页插件PaginationInterceptor

@Configuration
@MapperScan(" com.example.demomp.mapper")
public class MpConfig {
    /**
     * 乐观锁插件
     * 注意在Mybatis-plus3.4.0版本后,放弃此方法乐观锁处理器
     */

    @Bean
    public OptimisticLockerInterceptor optimisticLockerInterceptor() {
        return new OptimisticLockerInterceptor();
    }


    /**
     * 分页查询插件
     *
     * */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }

}

(2).分页查询测试

  // 分页查询

    @Test
    public void PagingQuery() {
        //  current: 当前页数  size: 每页的记录数
        Page<User> page = new Page<>(1, 3);
        //  返回对象得到所有数据
        Page<User> userPage = userMapper.selectPage(page, null);
        long pages = userPage.getPages();  //得到总页数
        long current = userPage.getCurrent();  // 当前页数
        List<User> records = userPage.getRecords();// 查询数据集合
        long size = userPage.getSize();// 查询总记录数
        boolean previous = userPage.hasPrevious();//是否有上一页
        boolean next = userPage.hasNext();// 是否有下一页
        System.out.println(pages);
        System.out.println(current);
        System.out.println(records);
        System.out.println(size);
        System.out.println(previous);
        System.out.println(next);
    }

测试一下,看看SQL日志。
普通查询和分页查询 - 图1
不得不感叹!Mybatis-plus真的太强大了!太方便了!确实帮助我们省却不少时间,几乎不怎需要编写SQL语句。