MyBatisPlus
MyBatisPlus 使用笔记
主键ID策略
AUTO
数据库ID自增,该类型请确保数据库设置了 ID自增 否则无效NONE
该类型为未设置主键类型(注解里等于跟随全局,全局里约等于 INPUT)INPUT
用户输入ID,该类型可以通过自己注册自动填充插件进行填充
以下两种类型、只有当插入对象 ID 为空,才自动填充:ASSIGN_ID
分配ID (主键类型为number或string), 默认实现类 {@link com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator}(雪花算法)ASSIGN_UUID
分配UUID (主键类型为 string),默认实现类 {@link com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator}(UUID.replace(“-“,””))
自增ID
mybatis-plus 从 3.3.0 开始,默认主键策略使用雪花算法+UUID(不含中划线)。
想使用数据库自增ID的话需要手动指定:
@TableName("comment")
public class CommentDO {
@TableId(type = IdType.AUTO)
private Long id;
}
更新set为null
mybatisplus 的 saveOrUpdate() 和 updateById() 方法不会对 null 字段更新,无法实现将某个字段的值 set 为 null
1、使用 LambdaUpdateWrapper 或 UpdateWrapper
LambdaUpdateWrapper<UserDO> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(UserDO::getJwt, null);
updateWrapper.set(UserDO::getLoginTime, null);
userMybatisService.update(updateWrapper);
2、使用 lambdaUpdate
userMybatisService.lambdaUpdate()
.eq(UserDO::getUsername, username)
.set(UserDO::getJwt, null)
.set(UserDO::getLoginTime, null)
.update();
Date 类型丢失时分秒
MySQL 字段类型
create_time datetime default CURRENT_TIMESTAMP not null,
update_time timestamp default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP
java 类型:
private java.sql.Date createTime;
private java.sql.Date updateTime;
写入数据时 MySQL 自动填入当前时间没问题,但通过 mybatis 查询出的数据只有年月日,丢失了时分秒,后来改为 java8 的新日期类型解决
private LocalDateTime createTime;
private LocalDateTime updateTime;
上一篇 HTTPS
下一篇 DrawIO
页面信息
location:
protocol
: host
: hostname
: origin
: pathname
: href
: document:
referrer
: navigator:
platform
: userAgent
: