1. ID生成策略
- AUTO(0)
- 数据库ID自增 (该类型请确保数据库设置了 ID自增 否则无效)
- NONE(1)
- 该类型为未设置主键类型(注解里等于跟随全局,全局里约等于 INPUT)
- INPUT(2)
- 用户输入ID (该类型可以通过自己注册自动填充插件进行填充)
- /* 以下3种类型、只有当插入对象ID 为空,才自动填充。 */
- ASSIGN_ID(3)
- 分配ID (主键类型为number或string
- 默认实现类 {@link com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator}(雪花算法)
- ASSIGN_UUID(4);
- 分配UUID (主键类型为 string)
- 默认实现类 {@link com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator}(UUID.replace("-",""))
/**主键*/
@TableId(type = IdType.XXX)
@ApiModelProperty(value = "主键")
private java.lang.String id;
2. 实体类自动填充
2.1 使用注解
@TableField(fill = FieldFill.DEFAULT)
private java.util.Date updateTime;
/** * 字段填充策略枚举类 *
<p> * 判断注入的 insert 和 update 的 sql 脚本是否在对应情况下忽略掉字段的 if 标签生成
* <if test="...">......</if> * 判断优先级比 {@link FieldStrategy} 高 * </p> *
* @author hubin
* @since 2017-06-27 */
public enum FieldFill {
/** * 默认不处理 */
DEFAULT,
/** * 插入时填充字段 */
INSERT,
/** * 更新时填充字段 */
UPDATE,
/** * 插入和更新时填充字段 */
INSERT_UPDATE }
2.2 在Handler中填充值
package bai.handler;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import java.util.Date;
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createTime",new Date(),metaObject);
this.setFieldValByName("updateTime",new Date(),metaObject);
}
@Override public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime",new Date(),metaObject);
}
}