he_song_
玩辅助的上单
2019-07-19 10:54
采纳率: 0%
浏览 2.5k

mysql数据库主键为bigint类型,要求使用uuid生成主键,有大佬帮忙解决一下吗

之前用的uuid都是32位的varchar类型,这次要求插入的uuid为20位bigint类型
之前的uuid生成方式

@SelectKey(keyProperty = "id",resultType = String.class, before = true,
statement = "select replace(uuid(), '-', '')")

@Options(keyProperty = "ID", useGeneratedKeys = true)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • doncha
    doncha 2019-07-19 11:08

    https://blog.csdn.net/zhongkelee/article/details/52289163
    public BigInteger(String val) 将一个字符串变成BigInteger类型的数据

    点赞 评论
  • wzy18210825916
    Java开发之旅 2019-07-19 16:59

    MySQL的uuid()函数好像是字符串的吧?你可以用雪花算法生成long类型的ID,正好兼容MySQL的bigint,可参考我的这篇文章,代码copy下来直接调用就好:
    https://blog.csdn.net/wzy18210825916/article/details/89382028

    点赞 评论
  • wojiushiwo945you
    毕小宝 2019-07-20 09:58

    int 类型的 uuid 没有现成的算法了,可以自己生成一个函数,结合时间戳和随机函数。
    参考这个:https://bbs.csdn.net/topics/391879360

    点赞 评论

相关推荐