MybatisPlus常用设置

个人博客地址:
http://xiaohe-blog.top

1. 开启日志

如果需要mp将SQL语句打印出来,可以配置日志输出。

mybatis-plus:
 configuration:
  # 打印SQL语句(日志)到控制台
  log-impl: org.apache.ibatis.logging.stdout.stdOutImpl

2. 设置Mapper文件扫描位置

mybatis-plus:
 # resource目录下mapper文件夹下所有xml文件 
 mapper-locations: classpath*:/mapper/*.xml

3. 设置逻辑删除字段

  1. 单独设置

    逻辑删除字段上加 @TableLogic

    public class Order {
        // 使用逻辑删除要给数据库中的字段一个默认值
        // 默认未删除值为0.默认已删除值为1
        @TableLogic
        private Integer isDeleted
    }
    
  2. 全局设置

    mybatis-plus:
     global-config:
      db-config:   
       logic-delete-field: isDeleted  # 逻辑删除字段值
       # 下面的根据需求来
       logic-delete-value: 1 # 逻辑已删除值(默认为1)
       logic-not-delete-value: 0 # 逻辑未删除值(默认为0)
    

4. 设置自动填充字段

第一步 :给需要进行自动填充的字段加上注解 :@TableField()

属性 fill 的值为枚举类 FieldFill,值如下:

1. 默认不做处理:
# DEFAULT

2. 插入时填充字段:
# INSERT

3. 更新时填充字段:
# UPDATE

4. 插入和更新时都填充字段:
# INSERT_UPDATE
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;

第二步:填充什么 ?

实现 MetaObjectHandler 接口,并将其注入 Spring。

// MetaObject 参数代表传入的数据,例如:user、order...
// 可以通过 metaObject.setValue(String tableName, Object obj) 给它设置值。
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    // 插入数据自动填充
    @Override
    public void insertFill(MetaObject metaObject) {
        metaObject.setValue("createdTime", LocalDateTime.now());
        metaObject.setValue("updateTime", LocalDateTime.now());
    }
    // 更新数据自动填充
    @Override
    public void updateFill(MetaObject metaObject) {
        metaObject.setValue("updateTime", LocalDateTime.now());
    }
}

以后数据库每一次变更(加了 @TableField 注解的)都会经过 insertFill/updateFill 。

5. 设置表名映射

  1. 单独设置

    实体类上加 @TableName("tb_user") 来指定表名:

    @Data
    @TableName("tb_user")
    public class User {
        private int id;
        private String  name;
    }
    
  2. 全局配置

    配置文件中加上通用前缀 :

    mybatis-plus:
     global-config:
      db-config:
       # 表名前缀
       table-prefix: tb_
    

6. 设置字段映射

指定Java实体类的变量对应数据库哪一个字段。

@TableField 注解的value属性,默认就是value属性,可以不写

@Data
public class User {
    // @TableField(value = "userId")
    @TableField("userId")
    private int id;
    
    private String  name;
}

7. 字段名和列名的驼峰映射

数据库中的字段名 :user_name

实体类中的变量名 :userName

mp默认开启驼峰映射,如果需要关闭 :

mybatis-plus:
 configuration:
  # 关闭驼峰映射
  map-underscore-to-case: false

8. 设置主键生成策略

默认情况下主键的生成策略使用mp提供的雪花算法生成的自增id。

  1. 单独设置

    如果需要使用别的策略,在字段上加 @TableId ,它通过type属性指定主键生成策略,type的值为枚举类。最后两个策略只有当插入对象的主键位为时才会自动填充。

属性值作用
IdType.NONE默认,未设置逐渐策略,使用全局策略,默认全局为雪花算法
IdType.AUTO使用数据库的自动增长策略,每次加一
IdType.INPUT需要手动设置主键
IdType…ASSIGN_UUID使用UUID生成随机主键
IdType.ASSIGN_IDmp自带策略,数字类型使用(19位)
  1. 全局配置

    在配置文件中:

mybatis-plus:
 global-config:
  db-config:
   # mp主键生成策略
   id-type: auto/none/input/assign_id/assign_uuid
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值