mybatis-plus主键生成策略
1. ID_WORKER
MyBatis-Plus默认的主键策略是:ID_WORKER 全局唯一ID
参考资料:分布式系统唯一ID生成方案汇总:https://www.cnblogs.com/haoxinyue/p/5208136.html
2. 自己指定主键生成策略
在mybatis-plus中想要自己指定主键策略需要在你的实体类中的id属性上面加上注解:@TableId()
查看源码,发现有个IdType,
再点进去,发现里面有很多主键生成策略。
分别对应的是:
- AUTO(0):数据库ID自增。
- NONE(1):该类型为未设置主键生成策略。
- INPUT(2):用户输入ID、该类型可以通过自己注册自动填充插件进行填充。简单来说就是使用了这个策略要我们自己输入id,不会自动生成id。
- ID_WORKER(3):全局唯一ID (idWorker),mp自带策略,会生成19位的值,需要的注意的是这个只能放在数字类型的主键中。
- UUID(4):全局唯一ID (UUID)。
- ID_WORKER_STR(5):字符串全局唯一ID (idWorker 的字符串表示)。同ID_WORKER不同的是它是只能放在String类型的主键中。
其中在mybatis-plus中默认的是ID_WORKER与 ID_WORKER_STR,当我们没有指定生成策略的时候,他会根据你的主键的数据类型来选择ID_WORKER或者ID_WORKER_STR,这两种主键生成策略使用的是snowflake算法,也就是雪花算法。
mybatis-plus主键生成策略相关推荐
- mybatis主键生成策略和mp主键生成策略
mybatis主键生成策略和mp主键生成策略 1,mybatis plus 主键生成策略 都是通过给实体类的属性添加注解的方式执行type = IDTYPE- 1,AUTO数据库ID自增 2, ...
- JavaEE持久层框架对比与hibernate主键生成策略总结
一.持久层框架对比 ORM框架:即对象关系映射.它把数据库表映射到pojo类,然后通过对类的操作来实现对数据库的增删改查,sql语句自动生成. 对于代码开发者来说,就是在代码里先创建数据库连接对象,然 ...
- hibernate 7大主键生成策略详解与对象状态
一:代理主键_主键自增 1.identity 1.采用底层数据库本身提供的主键生成标识符,条件是数据库支持自动增长数据类型 2.该生成器要求在数据库中把主键定义成为自增长类型.适用于代理主键 2.in ...
- Hibernate各种主键生成策略与配置详解 - 真的很详细啊!!
1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据库都无关,可以跨数据库.在存储对象前,必须要使用主 ...
- hibernate之主键生成策略
一.主键类型 1.自然主键(主键本身就是表中的一个字段,实体中一个具体的属性) 表中已经具有某字段,并且该字段具有业务含义作为主键,称之为自然主键. 例如:在person表中的身份证号,既是唯一的,又 ...
- 基于按annotation的hibernate主键生成策略
这里讨论代理主键,业务主键(比如说复合键等)这里不讨论. 一.JPA通用策略生成器 通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id ...
- Hibernate标识符属性(主键)生成策略全析
数据库中的主键能够唯一识别一条记录,它可以是一个字段也可以是多个字段的组合.主键的主要作用是标识表中的一条记录,还有和其他表中的数据进行关联.数据库中的主键类型必须符合唯一性约束和非空约束.作为附加属 ...
- 主键由数据库mysql 映射native_Hibernate主键生成策略详解
转载自:http://blog.csdn.net/wanghuan203/article/details/7562395 hibernate提供的主键生成策略,使我们可以在实体类的映射xml文件中设定 ...
- hibernate框架学习第二天:核心API、工具类、事务、查询、方言、主键生成策略等...
核心API Configuration 描述的是一个封装所有配置信息的对象 1.加载hibernate.properties(非主流,早期) Configuration conf = new Conf ...
- Hibernate持久化类与主键生成策略
Hibernate持久化类 什么是持久化类? Persistent Object (PO) PO=POJO+hbm映射配置 对于hibernate中的PO编写规则: 1. 必须提供一个无参数的publ ...
最新文章
- 重磅直播 | 室内动态变化场景中的相机重定位(CVPR2021)
- 苹果自动驾驶部门「裁员」又「重组」,AI负责人接掌「泰坦」
- 基于ubuntu 的LAMP 优化加固
- C++ new一个数组方法和初始化的方法
- wxWidgets:wxObjectDataPtr< T >类模板用法
- Java高并发系列 — AQS
- lnmp搭建的常见错误
- Arquillian 1.0.0.Final正式发布! 准备使用GlassFish和WebLogic! 杀死所有虫子!
- L2-010. 排座位-PAT团体程序设计天梯赛GPLT(并查集)
- java怎么连不上xml_java mvc web 项目web.xml头改错了,死活加载不上springMvc的jar
- firewalls 查看防火墙状态_5条命令玩转Linux系统防火墙
- 解决Solidworks 2016 安装注册Activator.GUI.SSQ卡顿 闪退 崩溃等问题
- wps怎么免费导出简历_简历模板Word文档 免费下载简历模板
- 程序员年薪40万被国企同学怒怼:没啥贡献,工资这么高,凭什么?
- 2.4g和5g要不要合并_路由器2.4g和5g要不要合并?
- php px与rem转换,pt 与 px、em、rem 的区别与换算
- 学习web前端能做游戏开发吗?
- RDA5820收音机芯片驱动
- Fragment和Activity之间的通信
- 《那些年啊,那些事——一个程序员的奋斗史》——28
热门文章
- W/ActivityManager( 1419): Activity is launching as a new task, so cancelling activity result.
- ENVI数据类型和MATLAB数据类型对比
- 3.企业安全建设指南(金融行业安全架构与技术实践) --- 安全规划
- 34.Linux/Unix 系统编程手册(下) -- 进程组,会话和作业控制
- 22. Magento 创建新闻模块(3)
- background-color:#e5eecc; border:solid 1px #c3c3c3;
- Python3-问题整理
- 《软件工程》团队第一阶段Sprint检查表
- “购物比价类”Target SDK≥26优秀应用展示
- python 匿名函数 与 重要的内置函数