MybatisPlus主键生成策略是什么


这篇文章主要讲解了“MybatisPlus主键生成策略是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MybatisPlus主键生成策略是什么”吧!标识主键字段
使用@TableId可以标识实体对象中和数据库表中主键对应的字段。如果不添加@TableId注解,会默认匹配id字段为主键。变量名称和主键字段名称的匹配
如果表中的主键字段名称和实体中的主键字段名称不相同,这时候就要通过@TableId中的value属性明确指出对应的数据库主键字段的名称。指定主键的生成方式
可以通过@TableId注解中的type属性指定主键的生成策略,具体支持哪些策略可以在IdType枚举中查看。通过查看IdType枚举类的源码,可以发现Mybatis-Plus中默认支持5种主键生成方式。IdType默认的全局设置为IdType.ASSIGN_ID,即由mybatis-plus主动分配主键,默认情况下由默认主键生成器实现类DefaultIdentifierGenerator采用雪花算法填充主键。在spring boot中,可以通过如下配置更改全局配置。Mybatis-Plus中的ID生成器主要分为2类,一类是IdentifierGenerator,另一类是IKeyGenerator。源码如下:说明:
IdentifierGenerator生成器中主要提供了3个方法。
其使用场景是:不依赖数据库生成免费云主机域名ID,而是由mybatis-plus自己提供一套id生成算法。 对应的主键生成方式为IdType.ASSIGN_ID、ASSIGN_UUIDassignId 是否需要分配idnextId 获取下一个数值型IdnextUUID 获取下一个uuid典型的实现是默认的id生成器DefaultIdentifierGenerator,基于雪花算法生成id。`具体使用:1、声明由mybatis-plus分配主键值2、指定idGenerator的实现类如果是默认的DefaultIdentifierGenerator,则不需要用户重新指定。源码如下:说明:
IKeyGenerator 生成器主要是根据不同的数据库类型,执行sql语句生成对应的主键。典型的数据库如Oracle,Postgre,需要根据序列器生成表主键。相关实现类:OracleKeyGenerator中的实现:
可以发现,是通过执行sql调用序列器生成的id。具体使用:
1、在实体中通过@KeySequence指定序列器名称,并通过@TableId指定主键生成策略为IdType.INPUT2、spring boot配置列中配置keyGenerator具体实现类也可以通过配置项指定:自定义主键生成器也有2种方式。
如果需要通过执行sql语句来生成id的,可以通过实现IKeyGenerator接口来自定义。 如果不想依赖数据库,完全自定义一套主键生成策略,那么可以通过实现IdentifierGenerator接口来扩展。下面演示如何通过实现IdentifierGenerator接口,自定义主键生成器。1、自定义id生成器2、配置类中指定id生成器3、实体类中指定主键分配策略IdType.ASSIGN_ID感谢各位的阅读,以上就是“MybatisPlus主键生成策略是什么”的内容了,经过本文的学习后,相信大家对MybatisPlus主键生成策略是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: MybatisPlus主键生成策略是什么

这篇文章主要讲解了“MybatisPlus主键生成策略是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MybatisPlus主键生成策略是什么”吧!标识主键字段使用@TableId可以标识实体对象中和数据库…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 03/28 12:17
Next 03/28 12:17

相关推荐