关于mybatis-plus最全知识总结

0. MP官网

https://www.baomidou.com/


引入 MyBatis-Plus 之后请不要再次引入 MyBatis 以及 MyBatis-Spring,以避免因版本差异导致的问题。




1. 关于自定义sql

    默认就会去找 classpath*:/mapper/**/*.xml




2. 关于批量添加/修改

    mapper层没有提供相应方法,service层提供了【但是其实还是调用的mapper层的】,效率极低,它就是for循环里面一条一条添加数据。



3. 关于表名和实体类类名不一致

    默认MP是去找跟你表名一样的实体类。

方法一:@TableName("t_user") 只能针对某一个实体类

方法二:

mybatis-plus:
  global-config:
    db-config:
      table-prefix: t_

# 能针对全局



4. @TableId

MP默认是把属性id作为主键,如果你的主键不叫id,则使用@TableId指定哪个属性为你的主键。

MP默认是生成雪花算法的ID【与数据库id是否设置自增无关】。

    如果,你的数据库里面叫 uid,而你的实体类里面你就想叫id,这时,你可以通过给@TableId设置值 
    @TableId(value = "uid")
    private Long id;
    @TableId的type属性:用于设置主键生成策略。
    @TableId设置生成策略只能用于某一个实体类。
    如果想全局设置

mybatis-plus:
  global-config:
    db-config:
      table-prefix: t_
      id-type: auto



4. @TableFileId

MP默认是把属性名与字段名作映射,如果你的字段名与属性名不匹配,

    在MP中,默认会将字段里面的 _ 转成驼峰。
    如user_name——>userName。

        若你的属性名与字段名不匹配,如属性名是password,字段名是pswd。
        则,你可以用@TableFileId指定字段名。

        @TableFileld("pswd")
        private String password;

    在MP中,若你的数据库未定义某个属性,而你的实体类有。就会报错。
        @TableFileld(exist="false")
        private String sex;

    在MP中,查询所有,默认会将属性全部查出来,若你想让某个字段不查出来
        @TableFileld(select=false)
        private String pwd;



5. 关于wapper


5.1 使用condition组装条件


5.2 LambdaQueryWrapper





6. 自定义分页

posted @ 2022-04-22 17:57   不将就鸭  阅读(257)  评论(0)    收藏  举报