1.默认使用驼峰转换,如果实体类名称或者字段是驼峰格式,转化成的对应数据库表名或者字段就是下划线分割的,如isDelete 对应的就是is_delete
2.如果表名与实体类名称不对应则实体类用@TableName(“t_user”)映射表名,@TableField可解决字段与数据库表字段不对应的问题;
3.关闭驼峰可在配置文件中配置
mybatis-plus: configuration: map-underscore-to-camel-case: false
注意mybatis-plus与spring并列级别
4.可在配置文件中配置表前缀
mybatis-plus: global-config: db-config:
5.查看控制台sql日志输出:
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
6. insertFill拦截保存时的数据,不过需要在实体类中createdTime,updatedTime上加上下面注解
@TableField(fill = FieldFill.INSERT)
updateFill拦截更新数据,不过需要在实体类中updatedTime加上下面注解
@TableField(fill = FieldFill.INSERT_UPDATE)
@Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { this.setFieldValByName("createdTime", LocalDateTime.now(), metaObject); this.setFieldValByName("updatedTime", LocalDateTime.now(), metaObject); } @Override public void updateFill(MetaObject metaObject) { this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject); } }
7.实体类主键设置
@TableId(value = "user_id",type = IdType.AUTO) 主键自增
@TableId(type = IdType.ASSIGN_UUID) 自动生成不含中划线的 UUID 作为主键。主键类型为 String
@TableId(type = IdType.ASSIGN_ID) 该策略会使用雪花算法自动生成主键 ID,主键类型为 Long 或 String