起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3169|回复: 2

[结贴] 数据库提交事务报错

[复制链接]

27

主题

101

帖子

413

积分

中级会员

Rank: 3Rank: 3

积分
413
QQ
发表于 2019-6-12 20:34:00 | 显示全部楼层 |阅读模式
代码
  1. int[] numList={213,324,453};
  2.                 String cats[] = new String[] {"Tom","Sam","Mimi" };
  3.                
  4.                 long startTime=System.currentTimeMillis();               
  5.         Connection conn=null;
  6.         try{
  7.             conn=com.justep.model.ModelUtils.getConnectionInTransaction("/cgspm/randomCheck/data");
  8.             conn.setAutoCommit(false);           

  9.             PreparedStatement stmt=conn.prepareStatement("insert into T_PM_CCXHB t (t.FID,t.VERSION,t.FXMID,t.FCCPC,t.FCCXH) values (?,?,?,?,?)");
  10.             
  11.             int num=0;
  12.             for(int k = 0;k<numList.length;k++){
  13.                 num++;
  14.                 stmt.setString(1, java.util.UUID.randomUUID().toString().replaceAll("-", ""));
  15.                 stmt.setInt(2, 0);
  16.                 stmt.setString(3, cats[k]);
  17.                 stmt.setString(4, ccpc);
  18.                 stmt.setInt(5, numList[k]);
  19.                 stmt.addBatch();
  20.                 //注意: 每5万,提交一次;这里不能一次提交过多的数据,我测试了一下,6万5000是极
  21.                //限,6万6000就会出问题,插入的数据量不对。
  22.                 if(num>50000){
  23.                     stmt.executeBatch();
  24.                     conn.commit();
  25.                     num=0;
  26.                 }
  27.             }
  28.             stmt.executeBatch();
  29.             conn.commit();
  30.         }catch(Exception e){               
  31.                 try {
  32.                         conn.rollback();
  33.                 } catch (SQLException e1) {       
  34.                 e1.printStackTrace();
  35.                 }
  36.                 e.printStackTrace();
  37.         }finally{
  38. //            closeConnection(conn);   
  39.                  try {
  40.                          conn.close();
  41.                  } catch (SQLException e2) {       
  42.                  e2.printStackTrace();
  43.                  }
  44.             long endTime=System.currentTimeMillis();
  45.             System.out.println("方法执行时间:"+(endTime-startTime)+"ms");
  46.         }
复制代码

报错如下:
java.sql.SQLException: 模型事务下不支持Connection上的rollback
        at com.justep.system.data.Transaction$CoreConnection.rollback(Unknown Source)
        at com.justep.system.data.ConnectionWrapper.rollback(Unknown Source)
        at RandomCheck.getCcxh(RandomCheck.java:227)
        at RandomCheck.getScore(RandomCheck.java:162)
        at RandomCheck.startCheck(RandomCheck.java:77)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.justep.system.action.Engine.invokeActions(Native Method)
        at com.justep.system.action.Engine.invokeActions(Unknown Source)
        at com.justep.business.server.BusinessServer.doAction(Unknown Source)
        at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)
java.sql.SQLException: 模型事务下不支持Connection上的setAutoCommit
        at com.justep.system.data.Transaction$CoreConnection.setAutoCommit(Unknown Source)
        at com.justep.system.data.ConnectionWrapper.setAutoCommit(Unknown Source)
        at RandomCheck.getCcxh(RandomCheck.java:202)
        at RandomCheck.getScore(RandomCheck.java:162)
        at RandomCheck.startCheck(RandomCheck.java:77)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.justep.system.action.Engine.invokeActions(Native Method)
        at com.justep.system.action.Engine.invokeActions(Unknown Source)
        at com.justep.business.server.BusinessServer.doAction(Unknown Source)
        at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2019-6-13 09:16:22 | 显示全部楼层
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

27

主题

101

帖子

413

积分

中级会员

Rank: 3Rank: 3

积分
413
QQ
 楼主| 发表于 2019-6-13 15:37:27 | 显示全部楼层
结贴
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-7 10:31 , Processed in 0.069976 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表