idea 创建多个线程并通过mybatis 去批量插入数据库,一直报回滚错误,错误如下 5C

```Exception in thread "pool-4-thread-4" org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is javax.transaction.RollbackException: One or more resources refused to commit (possibly because of a timeout in the resource - see the log for details). This transaction has been rolled back instead.
at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1037)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:746)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:714)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:532)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:304)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
at com.cloudyoung.springboot.project.standard.mvc.serviceImpl.associator.AssociatorIntegralImportServiceImpl$$EnhancerBySpringCGLIB$$70d5b82.resetIntegualByPage()
at com.cloudyoung.springboot.project.standard.mvc.serviceImpl.associator.AssociatorIntegralImportServiceImpl$1.run(AssociatorIntegralImportServiceImpl.java:205)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: javax.transaction.RollbackException: One or more resources refused to commit (possibly because of a timeout in the resource - see the log for details). This transaction has been rolled back instead.
at com.atomikos.icatch.jta.TransactionImp.rethrowAsJtaRollbackException(TransactionImp.java:48)
at com.atomikos.icatch.jta.TransactionImp.commit(TransactionImp.java:188)
at com.atomikos.icatch.jta.TransactionManagerImp.commit(TransactionManagerImp.java:414)
at com.atomikos.icatch.jta.UserTransactionManager.commit(UserTransactionManager.java:159)
at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1034)
... 12 more


但是 我根据所报错误 在配置文件下加了以下配置

com.tomikos.atomikosDataSource.MaxPoolSize=3000
com.tomikos.atomikosDataSourc.PoolSize=100
com.tomikos.atomikosDataSource.BorrowConnectionTimeout=100
com.tomikos.icatch.default_jta_timeout=200000

但是还是报错,为什么,有哪位大佬帮忙回答一下呢
0

1个回答

allowMultiQueries=true 这个放在jdbc url里,表示支持批处理

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mybatis批量插入报错问题
mybatis批量插入oracle时需要显式指定为 useGeneratedKeys=“false” insert into SIGN_CREDIT_HIS (ID, PERSON_ID, CREDIT, CREDIT_TIME, NOTE) select SYSTEM_SEQ.nextval,m.* from ( select #{item.personId,jdbcType=DECIMAL}...
Mybatis批量插入问题解决
原文:https://my.oschina.net/zjllovecode/blog/1818716 一、首先对于批量数据的插入有两种解决方案(下面内容只讨论和Mysql交互的情况) 1)for循环调用Dao中的单条插入方法 2)传一个List参数,使用Mybatis的批量插入 (foreach) 对于批量插入它的Mapper看起来向这样 <insert id="addUser" param...
Oracle+Mybatis的foreach insert批量插入报错的解决办法
Oracle+Mybatis的foreach insert批量插入报错的解决办法
关于mybatis+mysql批量插入的问题
之前在写项目时,会遇到在某个时间点内需要插入多条数据。之前我采用的方式是一次循环插入一条数据,每次插入都是一个过程。1.发起与数据库的链接 2.插入一条数据。 当你需要批量插入成千上万条的时候。就会是这个数量级乘以2,相信大部分的时间是浪费在链接数据库上。  批量插入成千上万条数据,就只需要2个步骤了,链接数据量,插入数据,当然插入数据的时候sql的不同写法,那么执行的效率也会不同,待会我会举
统计系列之批量插入中定位错误value
背景:在我们使用sql的时候会使用到批量插入(一条replace into/insert 语句后面接多条value值)大大减少了程序和数据库的交互给数据库减少了负担,但是批量插入会经常出现后面接的多个value值中某一条因数据类型或主键唯一等各种原因导致整个sql执行失败,而且由于value量太大无法找到到底哪一条value出现问题,后面就是解决这个问题的方法。 1.例子:建立测试数据库test...
mybatis事务回滚失败
今天遇到了一个尴尬的问题,在使用mybatis的时候发现事务回滚不了,然后查找了一下资料才知道是mysql引擎的问题: mysql有几种引擎,当使用InnoDB的时候,才可以进行事务处理 案列如下: userMapper.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis....
IDEA搭建springboot+mybatis项目,连接oracle数据库一直报找不到driver驱动类错误
试了很久很多方法都不行,明明IDEA右侧database连接测试都成功的。百度出来最多的是说oracle驱动jar包没有加到本地maven库中,结果不是。。我去本地maven库中看到是有jar包 的。最后乱试,把<scope>test</scope> 这行去掉,居然就可以了,坑爹啊~~~...
mybatis批量更新语法错误问题解决
        在平常开发项目的时候,我们经常会遇到这样的需求,那就是利用Mybatis批量更新或者批量插入,但是,实际上即使Mybatis完美支持你的sql,你也得看看你说操作的数据库是否支持。问题:            <!-- 批量更新,通过接收传进来的参数list进行循环着组装sql --> <update id="batchUpdate" parameterT...
mybatis批量插入报错:','附近有错误
mybatis批量插入的时候报错,报错信息‘,’附近有错误 mapper.xml的写法为<insert id="insertByBatch"> INSERT INTO USER_LOG (USER_ID, OP_TYPE, CONTENT, IP, OP_ID, OP_TIME) VALUES <foreach collection="userIds" ite
MyBatis使用foreach进行批量插入遇到的问题以及解决方法
<insert id="addPartion" parameterType="java.util.List" useGeneratedKeys="false"> INSERT INTO PDA_PARTITON (BSM,CZQDM,CZQMC,USERID,USERNAME,DUTY,FLAG,SUPERCODE,SUPERNAME) SELECT SEQ_
mybatis批量insert报错原因分析
最近在项目中需要使用mybatis的批量插入功能,但是不知道为什么出现奇怪的错误,调试了很久,最终解决。 我的最初的mybatis批量插入语句如下: &lt;insert id="insertDfldBatch" useGeneratedKeys="true" keyProperty="id"&gt; insert into dfld_new4 (way,sjdwz,ejdwz,...
记录一次使用hibernate做批量操作碰到的问题
事务控制不当造成hibernate批量操作卡死
mybatis generator报错,连接数据库错误
添加mysql依赖到plugin里
Oracle+Mybatis的foreach insert批量插入报错的快速解决办法
MyBatis的foreach功能在oracle数据库进行批量插入,报错如下: Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束  id="addUser" parameterType="java.util.List">  order="BEFORE" resultType="S
mybatis一直报空指针异常????
mybatis一直报空指针异常????
Mybatis利用SQL insert标签时报错:无效的列类型
在SQL语句中做修改 <insert id="save" parameterType="com.neuedu.crm.entity.SalesChance"> insert into SALES_CHANCES (ID, CONTACT, CONTACT_TEL, CREATE_DATE, CUST_NAME, DESCRIPTION, DESIGNEE_DA
MYSQL避免批量插入重复数据报错的解决方案
        在mysql中,想要批量的插入数据到数据库,会使用这样的语句        INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'), ('Another title', 'Another name', 'Another date')        但是如果此时数据库在这些字...
Mybatis批量更新出错问题
Mybatis批量更新出错问题 我们经常会遇到这样的需求,那就是利用Mybatis批量更新或者批量插入,但是,实际上即使Mybatis完美支持你的sql,你也得看看你说操作的数据库是否支持,而阿三,最近就遇到这样的一个坑 这是我的批量更新代码 图 **一看没毛病呀,打印出来sql也是正确的。的确,这段代码 是没有错误的。可是,只要一执行就要报语法错误。 后来发现,原来mysql的批量...
Spring 集成 tk.mybatis异常 反射报错
Spring 集成 tk.mybatis异常 反射报错 下面贴上报错的代码 java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvider.&amp;lt;init&amp;gt;() at java.lang.Class.getConstructor0(Class.java:3082) ~...
Java中用Mybatis插入mysql报主键重复问题的解决方法
首先思路是这样的,先去数据表里面去找有没有这个主键的数据(如果有会有返回值,如果没有则返回null),如果有则对该条数据进行更新操作,如果没有,则对数据表进行插入操作。原来数据表中有这些数据。数据表对应的bean的结构如下:public class DataBean { String key; String value; public DataBean() { ...
spring mybatis事务回滚配置
1、配置mybatis数据源<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.spring
【java项目实践】mybatis执行update批量更新时报错
在使用Mybatis 批量更新时,想要批量更新时通常在mapper中这么写: 定义Mapper  Dao接口中定义: 最后在service中调用: 生成的sql直接放到mysql中运行完全没有问题,但是mybatis执行的时候却会报错: 八月 29, 2016 4:17:08 下午 org.apache.catalina.core.StandardWrapperVa
mybatis参数绑定错误
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'id' not found. Available parameters are [0, 1, param1, param2]mybatis参数绑定错误;遇到这种错误...
数据库的批量操作和回滚
var transcation = connection.BeginTransaction();//标记起始位置 try { //……数据库一系列的操作//【这里之前的卡死的原因是多次打开数据连接,死锁了】 transcation.Commit();//事件提交 } catch { transcation.Rollback(); } 怀疑自己大脑死锁了,老是几行代码改来改去,改到最后,都...
Oracle 批量insert报错处理
你可能会碰到这样的业务,大批量插入数据,但可能有一两条数据有问题,导致插入失败,回滚就太不划算了。可以使用insert的一个特殊属性,如下面的例子。  SQL> select * from v$version;  BANNER  --------------------------------------------------------------------------------
mybatis 数据插入返回主键与多线程运行产生的错误
今天在码代码时,发现一个错误,有时正常有时不正常,完全没有一个程序该有的节操。在一翻调教下正常了。现留下解决方法备用。 以下原理纯属个人臆测,完全没有依据,误导完全不负责任~ 另请明白的大神评论里解释,脆谢~ 目标描述: 我需要一次并行运行多个线程,使用CyclicBarrier 线程阻塞,等待全部执行完毕。每一个执行的线程调用外部接口并收到接口响应,且都有单独的日志信息的DB插入。日志信息...
MyBatis入门 增删改要提交事务异常回滚 不然数据库是不改变的 查的话就不用
2018年1月11日 20:49:21 上课 第一步骤 建立库 表 CREATE DATABASE USER; USE USER; CREATE TABLE USER( uId INT(10) AUTO_INCREMENT NOT NULL PRIMARY KEY, uName VARCHAR(20), uPwd VARCHAR(20) ); DESC USER
The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one默认服务器时区问题mysql
The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more than one time zone Mysql 时区问题 mysql默认服务器时区问题:修改jdbc:mysql://localhost:3306/test?useUnicode=true&amp;amp;characterEncoding=utf-8...
关于idea中用jdbc连接mysql数据库时报错
大概用了两天时间,用jdbc连接数据库,使终不成功,百度上试用了各用方法,最后发现连接数据库执行结果集有两种: 一种:statement 另一种: Preparedstatement,  前一种使终报错,换成后一种,结果正常运行。有时候真的累。...
关于Mybatis一次性插入多条数据返回的记录数的问题
1.首先插入的时候传递的是list集合,那么就需要在collection后面写成list,例如: insert id ="InsertReaCodeDlInfos" parameterType="java.util.List" > INSERT INTO tpm_reacodegdlinfo (Guid,ReaCGGd,ReaCGd,Creator,CreateTime,LastMod
Java 多线程事务回滚 ——多线程插入数据库时事务控制
背景 日常项目中,经常会出现一个场景,同时批量插入数据库数据,由于逻辑复杂或者其它原因,我们无法使用sql进行批量插入,这个时候我们首先想到多线程并发插入,但是如何控制事务呢 … 直接上干货 实现效果 开启多条子线程,并发插入数据库 当其中一条线程出现异常,或者处理结果为非预期结果,则全部线程均回滚 代码实现 @Service public class CompanyUserBatchServ...
SpringMVC+Mybatis+事务回滚+异常封装返回
问题的背景: 使用dubbo搭建分布式服务架构,service的实现,采用SpringMVC4.1.6+MyBatis3.2.8。为了少维护一个维度,拟对service接口进行通用性定义,即让业务的变化,不影响已定义的service接口。 最终Service的方法签名定义如下(示例): public ServiceResult addProduct(ServiceParam
去掉IntelliJ IDEA 中 mybatis 对应的 xml 文件警告
IntelliJ IDEA 打开 mybatis 的 xml 文件时,对应的 xml 文件中 sql 语句背景色总是有黄色或绿色的背景色。提示(红圈处)上已经说明,需要配置在 IDEA 中配置 data
mybatis批量插入、批量更新
@Autowiredprivate SqlSessionTemplate sqlSessionTemplate;SqlSession session = sqlSessionTemplate.getSqlSessionFactory().openSession(ExecutorType.BATCH, false);try{    for(int i=0; i&amp;lt; size; i++) {   ...
多线程事务回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly( 最近开发,有地方需要用到多线程,每个线程里面处理多个方法,过程中遇到了一个问题,我们使用平时的@Transactional注解,就是当前一个方法执行完成(比如插入操作),后一个方法是不会事务回滚的。当时觉得很不可思议,后来经过半天时间,终于挖出原因,并成功解...
Mybatis 事物回滚最简单的操作方式
如果同一个方法需要同时进行两条sql的update 那么此时为了原子性,需要运用到事物。 @Transactional @ApiOperation(&quot;上移&quot;) @RequestMapping(value = &quot;/upExamLib&quot;, method = RequestMethod.PUT) public Result upExamLib(@Valid @Reques...
利用jdbc批量向数据库插入数据怎么输出成功和失败的数量
最近做了一个excel批量导入的功能,怎样才能实现控制台可以输出插入成功和失败的数量
mybatis之入门到开发(三)之常用对象SqlSessionFactory和SqlSession,动态sql,输入映射和输出映射
一:Mybatis的常用对象SqlSessionFactory和SqlSession 1、SqlSessionFactory : 它是Mybatis的关键对象,是单个数据库映射关系经过编译后的内存镜像。 1.1、特点:每一个Mybatis的应用程序都以一个SqlSessionFactory对象的实例为核心,它的线程是安全的。一旦被创建,应该在应用执行的期间都存在,在应用运行的期间不需要重复创建多
oracle在mybatis中批量插入数据报错java.sql.SQLException: ORA-00933: SQL 命令未正确结束
红色的要加上 &amp;lt;insert id=&quot;insertVal&quot; parameterType=&quot;java.util.List&quot; useGeneratedKeys=&quot;false&quot;&amp;gt; INSERT ALL &amp;lt;foreach collection=&quot;list&quot; item=&quot;it&quot;&amp;gt; into PROJECT_CATALOG (id,code
mybatis 批量插入,报唯一索引字段重复插入 Duplicate entry
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '057f31082f1c4534af4c2d5f334c6124' for key 'uni_trans' at sun.reflect.NativeConstructorAcce...