mybatis-plus自动生成,mybatis plus雪花算法

  mybatis-plus自动生成,mybatis plus雪花算法

  在Mybatis-plus中,通过设置@TableId,Mybatis-plus可以自动为我们生成雪花算法的Id号。这个身份证号是长整数数据,很方便。但是,雪花算法的ID号是在执行Insert时生成的。在执行Insert之前,我们不知道实体将获得什么ID号。

  但是在某些情况下,我们希望提前得到这个ID,这样就可以通过一些计算生成其他字段的值。比如我们用这个ID号作为密钥来加密密码。

  在这种情况下,需要预先生成身份证号,并手动设置为实体。在实体类中,通过以下注释将自动ID更改为编程输入:

  @TableId(type=IdType。输入)然后我们需要用雪花算法生成一个ID号。需要自己再写一个雪花算法生成类吗?

  一点也不。因为Mybatis-plus内置了雪花算法生成函数,我们只要找到它并调用它就可以了,就是下面这个类:

  导入com . baomi dou . mybatisplus . core . toolkit . id worker;我们可以这样称呼它:

  Long ID=IdWorker.getId(实体);如果你有更高的要求,还可以设置雪花算法的其他参数。

  这个类的源代码如下:

  /**版权所有2011年至2020年,宝米豆(jobob@qq.com).* p*根据街头流氓许可证2.0版("许可证")获得许可;除非符合许可证的规定,否则您不得*使用本文件。您可以在* p * https://www.apache.org/licenses/LICENSE-2.0* p *获得*许可证的副本。除非适用法律要求或书面同意,根据许可证分发的软件*按"原样"分发,没有任何形式的*担保或条件,无论是明示的还是暗示的。请参阅*许可证,了解*许可证下管理权限和限制的特定语言. */package com。窦米宝。mybatisplus。核心。工具包;导入com。窦米宝。mybatisplus。核心。配置。全局配置;导入com。窦米宝。mybatisplus。核心。增量器。默认标识符生成器;导入com。窦米宝。mybatisplus。核心。增量器。标识符生成器;导入Java。时间。本地日期时间;导入Java。时间。格式。日期时间格式化程序;导入Java。util。uuid导入Java。util。并发。threadlocalrrandom/*** id获取器* * @作者胡斌* @自2016-08-01 */公共课IdWorker { /** *主机和进程的机器码*/私有静态标识符生成器IDENTIFIER _ GENERATOR=new default IDENTIFIER GENERATOR();/** * 毫秒格式化时间*/公共静态最终日期时间格式化程序毫秒=日期时间格式化程序。的模式( yyyymmdd hhmmsssss );/** * 获取唯一ID * * @ return ID */public static long getId(){ return getId(new Object());} /** * 获取唯一ID * * @ return ID */public static long getId(对象实体){返回标识符_生成器。nextid(实体)。long value();} /** * 获取唯一ID * * @ return ID */公共静态字符串getid str(){ return getid str(new Object());} /** * 获取唯一ID * * @ return ID */公共静态字符串getid str(Object entity){ return IDENTIFIER _ generator。nextid(实体).toString();} /** * 格式化的毫秒时间*/公共静态字符串get毫秒(){返回LocalDateTime.now().格式(毫秒);} /** * 时间ID=时间ID * p例如:可用于商品订单ID/p */public静态字符串getTimeId(){ returnget毫秒()getIdStr();} /** * 有参构造器* * @param workerId工作机器ID * @param dataCenterId序列号* @ see # setIdentifierGenerator(IdentifierGenerator)*/public static void init sequence(long workerId,long data centerid){ IDENTIFIER _ GENERATOR=new defaultidentifier GENERATOR(workerId,data centerid);} /** * 自定义编号生成方式* * @ param identifierGenerator生成器编号生成器* @ see global config # set IDENTIFIER GENERATOR(标识符生成器)*/public static void set IDENTIFIER GENERATOR(标识符生成器标识符生成器){ IDENTIFIER _ GENERATOR=标识符生成器;} /** * 使用threadlocalrrandom获取全球唯一标识符获取更优的效果去掉- */public static String get 32 uuid(){ threadlocalrrandom random=threadlocalrrandom。当前();返回新UUID(random.nextLong()、random.nextLong())。toString().替换(字符串池.短跑,字符串池.空);}}到此这篇关于Mybatis-plus如何提前获取实体类用雪花算法生成的身份的文章就介绍到这了,更多相关Mybatis-plus获取雪花算法生成身份内容请搜索盛行信息技术以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行它!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: