難題解決:Mycat數據庫中間件+Mybatis批量插入數據並返回行記錄的所有主鍵ID


 一、mybatis的版本必須為3.3.1及其以上

項目所依賴的mybatis的版本必須為3.3.1及其以上,低版本的不行,保證hap項目的依賴的mybatis的jar的版本必需為需要的版本:

 

二、在Dao層不能使用@Param注解,且Mapper.xml文件中使用list變量接收Dao層中的集合

 數據庫庫結構設計:

 

對應的Dto層:

對應的Mapper接口:

對應的Mapper.xml文件:

具體代碼如下,需要使用到mycat的注解,指定該插入為批量數據插入:

<insert id="insertByBatch">
/*!mycat:catlet=io.mycat.route.sequence.BatchInsertSequence */
insert into test_sharding_by_accounting_date (rule_code,name,accounting_date)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.ruleCode,jdbcType=DECIMAL},#{item.name,jdbcType=VARCHAR},#{item.accountingDate,jdbcType=DATE})
</foreach>
</insert>

三、Mycat為分庫表做全局序列的配置

schema.xml文件:

server.xml文件的全局序列方式設置為本地讀取:

 

 sequence_conf.properties文件的配置:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM