mysql批量insert序列_难题解决:Mycat数据库中间件+Mybatis批量插入数据并返回行记录的所有主键ID...

本文介绍了在使用Mycat数据库中间件和Mybatis时,如何实现批量插入数据并获取所有插入记录的主键ID。关键点包括:确保Mybatis版本在3.3.1以上,不使用@Param注解,使用list变量,并在Mapper.xml中配置插入语句。同时,Mycat需要配置全局序列,以便在分库表中生成序列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、mybatis的版本必须为3.3.1及其以上

项目所依赖的mybatis的版本必须为3.3.1及其以上,低版本的不行,保证hap项目的依赖的mybatis的jar的版本必需为需要的版本:

a5e06e422f1706d0ebe0124fe5223adb.png

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

数据库库结构设计:

48ff453a7931eb6665abaad5f8865d7b.png

对应的Dto层:

099a5989ef763f731681423bebc5818a.png

对应的Mapper接口:

4c801bc311a16652fb5ce197d634a3cc.png

对应的Mapper.xml文件:

65925ec6bbe7b9e41d1afa16e5192942.png

具体代码如下,需要使用到mycat的注解,指定该插入为批量数据插入:

/*!mycat:catlet=io.mycat.route.sequence.BatchInsertSequence */

insert into test_sharding_by_accounting_date (rule_code,name,accounting_date)

values

(#{item.ruleCode,jdbcType=DECIMAL},#{item.name,jdbcType=VARCHAR},#{item.accountingDate,jdbcType=DATE})

三、Mycat为分库表做全局序列的配置

schema.xml文件:

283c2336ce79f2755ef8ef808676bbd8.png

server.xml文件的全局序列方式设置为本地读取:

f014e737a18aa58c319b13af74d56ce0.png

sequence_conf.properties文件的配置:

3b9e0044133b7bd12e409a7bbc1802ac.png

mybatis批量插入数据到oracle

mybatis 批量插入数据到oracle报 ”java.sql.SQLException: ORA-00933: SQL 命令未正确结束“  错误解决方法 oracle批量插入使用 insert a ...

Mybatis 批量插入数据

--mybatis 批量插入数据 --1.Oracle(需要测试下是否支持MySQL) < insert id ="insertBatch" parameterType=&q ...

【转载】MyBatis批量插入数据(insert)

介绍:MyBatis批量插入数据,原理就是在xml文件中添加 foreach 语句,然后MyBatis自动在values后面添加多个括号: XML文件如下: <?xml version=&quo ...

160421、MyBatis批量插入数据

在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,由于项目使用了Spring+MyBatis的配置,所以打算使用MyBatis批量插入,由于之前没用过批量插入,在网上找了一些 ...

mybatis批量插入数据

Mybatis在执行批量插入时,如果使用的是for循环逐一插入,那么可以正确返回主键id.如果使用动态sql的foreach循环,那么返回的主键id列表,可能为null,这让很多人感到困惑:本文将分析 ...

MyBatis批量插入数据&lpar;MySql&rpar;

由于项目需要生成多条数据,并保存到数据库当中,在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,项目使用了Spring+MyBatis,所以打算使用MyBatis批量插入,应 ...

【JDBC】向数据表插入数据时,自动获取生成的主键

数据表设计时,一般都会有一个主键(Key)(自己指定),有时也可以使用联合主键: 有许多数据库提供了隐藏列为表中的每行记录分配一个唯一键值(如:rowid): 当我们没有指定哪一列作为主键key时,数 ...

数据库设计时,每个表要不要都设置自增主键ID!(转)

逻辑数据库设计 - 需要ID(谈主键Id) 本文的目标就是要确认那些使用了主键,却混淆了主键的本质而造成的一种反模式. 一.确立主键规范 每个了解数据库设计的人都知道,主键对于一张表来说是一个很重要, ...

使用JDBC在MySQL数据库中快速批量插入数据

使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(10W+),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: void addBatch ...

随机推荐

Spring—Quartz定时调度CronTrigger时间配置格式的实例

格式说明:[秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 秒 是 0-59 , - * / 2 分 是 0-59 , - * / 3 小 ...

Java并发编程-CopyOnWriteArrayList

CopyOnWriteArrayList原理 首先每次写操作,都将数组copy一份,并赋值给arrays 读操作读不加锁 写操作加锁 ReentrantLock 因为每次写都要copy数组,这是一项繁 ...

derby支持的数据类型

Data types This section describes the data types used in Derby. Built-In type overview Numeric types ...

&lbrack;Flex&rsqb; IFrame系列 —— 在flex的web应用中嵌入html的方法

在flex的web应用中,我们往往必须有嵌入html的需求,这时候你会发现IFrame很有用! flex而且可以和html中的JavaScript进行交互,flex可以通过iframe调用到html中 ...

Sending messages to non-windowed applications -- AllocateHWnd&comma; DeallocateHWnd

http://delphi.about.com/od/windowsshellapi/l/aa093003a.htm Page 1: How Delphi dispatches messages in ...

php中双&dollar;&dollar;与多&dollar;&dollar;

<?php $a="b";$b="bbb";$c="ccc";echo $$a;?> 输出结果bbb $a的值为b $$a不是输出 ...

HDU 4444 Walk &lpar;离散化建图&plus;BFS&plus;记忆化搜索&rpar; 绝对经典

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4444 题意:给你一些n个矩形,给你一个起点,一个终点,要你求从起点到终点最少需要转多少个弯 题解:因为 ...

自定义构造方法和description方法

知识回顾在第5讲中已经介绍了如何定义类和创建并初始化对象,比如有Student这个类1.Student.h 1 #import 23@in ...

hdu1043

#include#include#include#include#inclu ...

wireshark数据包分析实战 第二章

1,监听网络线路:即嗅探器的位置确定. 2,混杂模式:将网卡设置成混杂模式,网卡可以接受经过网卡的所有数据报,包括目的地址不是本网卡的数据报.这些数据都会发送给cpu处理,这样,wireshark就能 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值