当前位置: 首页 > news >正文

余姚企业网站建设公司建设安全监督网

余姚企业网站建设公司,建设安全监督网,设计公司网站时什么是重要的,网站备案时间太长主键策略(ID自动生成) 以下是MyBatis-Plus中常见的几种主键生成策略及其对应的枚举值(3.3.0之前的版本): 主键生成策略枚举值数据库自增IdType.AUTO用户输入IdType.INPUT分布式全局唯一IDIdType.ID_WORKER分布式全局…

主键策略(ID自动生成)

以下是MyBatis-Plus中常见的几种主键生成策略及其对应的枚举值(3.3.0之前的版本):

主键生成策略枚举值
数据库自增IdType.AUTO
用户输入IdType.INPUT
分布式全局唯一IDIdType.ID_WORKER
分布式全局唯一ID(字符串类型)IdType.ID_WORKER_STR
UUIDIdType.UUID
雪花算法全局唯一IDIdType.SNOWFLAKE
雪花算法全局唯一ID(字符串类型)IdType.SNOWFLAKE_STR

3.3.0之后的版本:

描述
AUTO数据库自增,适用于MySQL、SQL Server等数据库
INPUT手动输入,适用于全局唯一ID的情况,自定义
ASSIGN_UUID32位UUID字符串
ASSIGN_ID分布式全局唯一ID,雪花算法生成
NONE无状态,可以通过全局唯一ID进行填充
public enum IdType {AUTO(0),            //数据库自增长,mysql的自增长主键NONE(1),            //未设置INPUT(2),           //自定义设置ASSIGN_ID(3),   //分配 ID(主键类型为 Number(Long 和 Integer)或 String)(since 3.3.0),//使用接口IdentifierGenerator的方法nextId(默认实现类为DefaultIdentifierGenerator雪花算法)ASSIGN_UUID(4); //分配 UUID,主键类型为 String(since 3.3.0),//使用接口IdentifierGenerator的方法nextUUID(默认default 方法)private final int key;private IdType(int key) {this.key = key;}public int getKey() {return this.key;}
}

配置文件中全局配置:

#配置数据源
spring:datasource:druid:url: jdbc:mysql://localhost:3306/book_db?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=trueusername: rootpassword: 123driver-class-name: com.mysql.cj.jdbc.Driver#mybatisplus配置
mybatis-plus:global-config:db-config:#配置id自增长,ID自动生成策略id-type: autoconfiguration:#配置mybatisplus日志log-impl: org.apache.ibatis.logging.stdout.StdOutImplmapper-locations: classpath:/mapper/*.mapper.xml      #xml文件的位置(resources下的mapper文件夹)

注: 实体类@TableId注解的type属性会覆盖全局属性,优先以各实体类的配置为主,未配置的则全局配置生效

公共字段自动填充的使用

  1. 实体类公共字段 添加@TableField注解,配置fill属性:
描述
INSERT插入时填充
UPDATE更新时填充
INSERT_UPDATE插入和更新时填充
DEFAULT默认不填充
  1. 实现MetaObjectHandler接口,重写insertFill和updateFill方法,并注册为Bean
@Slf4j
@Component
public class MybatisplusHandler implements MetaObjectHandler {// 插入时的填充策略/*** 数据创建时间的属性名*/public static final String FIELD_CREATE_TIME = "createTime";/*** 数据最后修改时间的属性名*/public static final String FIELD_UPDATE_TIME = "updateTime";public static final String FIELD_CREATE_USER = "createUser";public static final String FIELD_UPDATE_USER = "updateUser";@Overridepublic void insertFill(MetaObject metaObject) {LocalDateTime now = LocalDateTime.now();Long id = BaseContext.getCurrentId();log.info("开始执行插入时的自动填充");log.info("metaob{}",metaObject.toString());this.strictInsertFill(metaObject,FIELD_CREATE_USER, Long.class, id);this.strictUpdateFill(metaObject,FIELD_UPDATE_USER, Long.class, id);this.strictInsertFill(metaObject,FIELD_CREATE_TIME, LocalDateTime.class, now);this.strictUpdateFill(metaObject,FIELD_UPDATE_TIME, LocalDateTime.class, now);}@Overridepublic void updateFill(MetaObject metaObject) {LocalDateTime now = LocalDateTime.now();Long id = BaseContext.getCurrentId();this.strictUpdateFill(metaObject,FIELD_UPDATE_TIME, LocalDateTime.class, now);this.strictUpdateFill(metaObject,FIELD_UPDATE_USER, Long.class, id);}
}

注意事项:在使用公共字段自动填充和id自动生成时,自定义的insert和update的Mapper方法不得进行判空,否则自动填充不生效。这是由于mybatisplus的底层是先执行自定义的SQL,后填充。此时公共自段未传入,如果进行判空的话,mybatis就不会拼接该字段,后面填充时也不会插入该字段。

 <insert id="insert" parameterType="com.sky.entity.Employee">INSERT INTO employee<trim prefix="(" suffix=")" suffixOverrides=",">id,<if test="name != null">name,</if><if test="username != null">username,</if><if test="password != null">password,</if><if test="phone != null">phone,</if><if test="sex != null">sex,</if><if test="idNumber != null">id_number,</if><if test="status != null">status,</if>create_time,update_time,create_user,update_user</trim>VALUES<trim prefix="(" suffix=")" suffixOverrides=",">#{id,jdbcType=BIGINT},<if test="name != null">#{name,jdbcType=VARCHAR},</if><if test="username != null">#{username,jdbcType=VARCHAR},</if><if test="password != null">#{password,jdbcType=VARCHAR},</if><if test="phone != null">#{phone,jdbcType=VARCHAR},</if><if test="sex != null">#{sex,jdbcType=VARCHAR},</if><if test="idNumber != null">#{idNumber,jdbcType=VARCHAR},</if><if test="status != null">#{status,jdbcType=INTEGER},</if>#{createTime,jdbcType=TIMESTAMP},#{updateTime,jdbcType=TIMESTAMP},#{createUser,jdbcType=BIGINT},#{updateUser,jdbcType=BIGINT}</trim></insert>```
http://www.yayakq.cn/news/989630/

相关文章:

  • 北京网站建设公司兴田德润电话wordpress男性模板
  • 网站可信度建设有多少种做网站后台程序
  • 株洲营销网站建设音乐网站建设目标
  • 自助小站网站关键词做标签
  • 台州做网站那家好网站如何生成静态页面
  • 集团网站群建设方案普通电脑可以做网站服务器
  • 网站内容丰富优秀网站开发公司
  • 东莞品牌型网站建设价格石家庄 网站编辑
  • 网站开发追款单建模e-r跟做网站有什么关系
  • 做盗版网站引流安卓内核级优化神器
  • 芜湖营销型网站建设国外vps加速免费下载
  • 做网站的公司倒闭了上海市建设工程咨询
  • 南昌城乡住房建设厅网站学广告设计要多久能学会
  • 怎样做自己的购物网站给一个网站风格做定义
  • 怎么查看网站用什么做的平台公司拿地
  • 手机网站关键词排黑色网站配色
  • 平顶山北京网站建设网站建设搭建步骤
  • 深圳网站开发制作seo服务平台选择
  • 网站前端设计理念深圳国税局网站怎么做票种核定
  • 网站建设开发协议书大学生个人网站制作
  • 深圳英文建站公司问答网站怎么做营销
  • 网站开发工程师培训机构网站服务器知识
  • 工业和信息化部网站备案系统是什么意思怎么样做推广最有效
  • 手机设计logo软件怎么优化网站关键词排名
  • 常用的软件下载网站利用wps做网站
  • 广东旅游网站建设建立公司网站
  • 厦门网站建设模拟濮阳水虎网络科技有限公司
  • 菠萝之乡网站建设怎么做透明的网站图片
  • 怎么做hello官方网站建设注册管理中心网站
  • 六安网站山东大标网络