跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Java 使用 mybatis-3.2.8,想获取批量插入记录的主键,求助
未分類
12 1 月 2021

Java 使用 mybatis-3.2.8,想获取批量插入记录的主键,求助

Java 使用 mybatis-3.2.8,想获取批量插入记录的主键,求助

資深大佬 : alexfarm 0

尝试直接用 useGeneratedKeys,但公司的框架模版使用的 mybatis 依赖是 3.2.8 版本的,看了官网需要 3.3.1 才支持。如果在不修改 mybatis 依赖版本的情况下,除了插入后再查一次,如何能获取批量插入记录的主键呢?

大佬有話說 (15)

  • 資深大佬 : micean

    如果用 batch 肯定是没有的
    用单次提交试试吧

    或者开事务,批量插入后查一次

  • 資深大佬 : 340244120w

    自己生成主键

  • 主 資深大佬 : alexfarm

    @340244120w 自己生成就不能使用自增主键了啊,多节点还要处理唯一性啊

  • 主 資深大佬 : alexfarm

    @micean 谢谢,先试试看单次提交

  • 資深大佬 : w292614191

    selectkey

  • 主 資深大佬 : alexfarm

    @w292614191 这个也不支持批量的

  • 資深大佬 : xiang0818

    用分布式 Id 吧,事先生成主键会好点

  • 資深大佬 : Still4

    升级版本,实在不想升级就参考支持的版本自己实现一遍,所以还是升级比较方便

  • 資深大佬 : shanghai1943

    增加一个 uuid 字段,批量插入之后再根据 uuid 批量查询对应的自增 id

  • 資深大佬 : slyang5

    自己生成主键 ID 吧 set 一下 再批量插入

  • 資深大佬 : RedBeanIce

    @shanghai1943
    @slyang5
    在多台服务器的情况下,禁止程序自己生成主键,否则请求打到多台服务器,你生成的 id,可能会重复。

  • 資深大佬 : shanghai1943

    额没看清题目。尴尬。

  • 資深大佬 : hiveex

    他的 batch 源码里也是 for 循环去插入 你直接用 for 记下 id

  • 資深大佬 : wg20080215

    @RedBeanIce 没毛病呀。 #9 的方案可以的,把 snowflake 生成的 UUID 字段作为非主键字段,插入数据库后拿着 UUID 去查 自增 ID 也可以的。不管你几台服务器 snowflake 都无所谓嘛

  • 資深大佬 : 340244120w

    @alexfarm #3
    出了雪花外,美团的这个可以
    https://github.com/Meituan-Dianping/Leaf

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具