美文网首页
Mybatis-plus 使用备忘

Mybatis-plus 使用备忘

作者: KenChen_939 | 来源:发表于2021-07-26 10:19 被阅读0次

    MyBatis Plus是一个MyBatis的增强器。在MyBatis的基础上只做增强不做改变。

    依赖:

    <!--        持久层:mybatis plus,mysql-->
            <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.4.2</version>
            </dependency>
    

    关于CRUD

    正常写pojo类,但是mapper只需要继承BaseMapper即可
    此时既可调用mapper的CRUD方法。但是MyBatis Plus的功能远不止与此。

    @Mapper
    public interface UserMapper extends BaseMapper<User> {
    
    }
    
    
    @Autowired
    private UserMapper userMapper;
    
    
    /**
     * 查询全部
     */
    @Test
    public void selectAll(){
        System.out.println("--------SelectAll method test-------");
        List<User> userList = userMapper.selectList(null);
        userList.forEach(System.out::println);
    }
    
    
    /**
     * 根据ID查询
     */
    @Test
    public void selectById(){
        System.out.println("--------SelectById method test-------");
        User user = userMapper.selectById(1);
        System.out.println(user.toString());
    }
    
    
    /**
     * 批量删除
     */
    @Test
    public void deleteByIds(){
        System.out.println("--------DeleteByIds method test-------");
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i <3 ; i++) {
            list.add(i);
        }
        userMapper.deleteBatchIds(list);
    }
    

    条件构造器 Wrapper

    对于需要进行条件筛选的SQL来说,就需要用到条件构造器,它可以生成轻度复杂的sql语句。


    image.png
    //selectList
    @Test
    public void QueryWrapperTest(){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.ge("age",20);                                    //查询所有年龄小于20的user。
    
        List<User> userList = userMapper.selectList(queryWrapper);
        userList.forEach(System.out::println);
    }
    
    //selectPage
    
    /**
     * 分页查询
     */
    @Test
    public void selectPage(){
        Page<User> page = new Page<>(1, 3);
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        Page<User> userIPage = userMapper.selectPage(page, queryWrapper);
    
        System.out.println(userIPage.toString());
        System.out.println("总条数"+userIPage.getTotal());
        System.out.println(userIPage.getRecords());
    }
    }
    

    关于分页

    //分页查询插件,需添加config
    @EnableTransactionManagement
    @Configuration
    @MapperScan("cn.lnfvc.ken.demo.mapper")// 这里配置自己项目的dao层目录
    public class MybatisPlusConfig {
        @Bean
        public PaginationInterceptor paginationInterceptor() {
            PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
            // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
            // paginationInterceptor.setOverflow(false);
            // 设置最大单页限制数量,默认 500 条,-1 不受限制
            // paginationInterceptor.setLimit(500);
            // 开启 count 的 join 优化,只针对部分 left join
            paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
            return paginationInterceptor;
        }
    
        // 最新版
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
    

    日志打印

    如果要看执行的sql语句,可以在yml中添加配置信息.在执行时就会打印出来。

    mybatis-plus:
      configuration:
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    

    相关文章

      网友评论

          本文标题:Mybatis-plus 使用备忘

          本文链接:https://www.haomeiwen.com/subject/yotzeltx.html