2016 - 2024

感恩一路有你

mybatis返回自增主键 mybatis批量插入,怎么返回生成的自增主键?

浏览量:1430 时间:2021-03-17 08:05:07 作者:admin

mybatis批量插入,怎么返回生成的自增主键?

我觉得你应该在for循环里执行$this->db->insert(),然后用$this->db->insert_id()获取每一次插入后的id

MySQL分库分表之后,id主键如何处理?

我从分库分表存在的问题和怎么做来回答一下这个问题。。

一,分库分表的ID主键不能依赖于数据库的自增,因为多库中会重复!

通常使用外接的数据组件获取全局唯一的ID:比如加强型UUID(根据Ip,时间戳等得到)和使用Redis(RedisAtomicLong)和zookeeper的API获取,Twitter的雪花算法等等!

二,分库分表之后的连接查询比较困难!

问题没法避免,通常拆分SQL,使用多次查询,用查到的结果再分别查别的结果!

三,分布式事务的数据一致性很难保证!

可以使用TCC编程模型保证两处的事务都能正确提交,但是这种方式对代码的侵入比较重!也可以使用基于消息的数据一致性保证!

四,多数据的排序,分组,统计会比较困难!

1,用多线程,对多个节点分别查询,然后汇总!

2,也可以提前冗余查询表,将所有的经常查询的重点数据提前统一到个库表里!

分库分表涉及到的知识点比较多,建议使用专门的分库分表组件!本人有mycat使用经验,如果您有相关问题,欢迎前来探讨!

mybatis批量插入,怎么返回生成的自增主键?

我们项目组正好用到了这个,SEQ_ZONE为sequence,则mybatis配置文件如下: SELECT SEQ_ZONE.CURRVAL AS id from dual insert into TBL_ZONE (ID, NAME ) values (SEQ_ZONE.NEXTVAL, #{name,jdbcType=VARCHAR} )

mybatis中如何获取自动生成的主键?

/*** 插入数据获取主键*/@Insert("insert into tb_user(login_name ,username ,password) " "values (#{loginName},#{username},#{ password })")@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")public void insertGetKey(User user)

mybatis返回自增主键 mybatis获取自增主键的注解 java

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。