-
Mybatis批处理报错10
代码如下:
List<VisitEntity> visits = new ArrayList<VisitEntity>(); VisitEntity uv = null; for (int i = 0; i < 1000; i++) { uv = new VisitEntity(); uv.setPage("http://www.site.com/"); uv.setPageName("首页"); uv.setReferer("http://www.site.com?wd=关键字"); uv.setRefererDomain("http://www.baidu.com"); uv.setSearchEngine("baidu"); uv.setSearchWord("官网"); uv.setSessionId("asadf232asdf22"); uv.setTime(new java.util.Date()); uv.setTrafficType("search"); visits.add(uv); } SqlSessionFactory factory = MybatisUtil.getSqlSessionFactory(); SqlSession sqlSession = factory.openSession(ExecutorType.BATCH, false); UserVisitMapper mapper = sqlSession.getMapper(UserVisitMapper.class); //批量插入 long start = System.currentTimeMillis(); try { for (VisitEntity t : visits) { mapper.insert(t); } sqlSession.commit(); } catch (SQLException e) { e.printStackTrace(); } long end = System.currentTimeMillis(); System.out.println("批量插入共花费时间" + (end-start) + "ms");
生成SqlSession,如果用默认的SimpleExecutor一切正常,换做BatchExecutor就会报下面的错误:
xception in thread "main" org.apache.ibatis.exceptions.PersistenceException: ### Error committing transaction. Cause: java.lang.ArrayIndexOutOfBoundsException ### Cause: java.lang.ArrayIndexOutOfBoundsException at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8) at org.apache.ibatis.session.defaults.DefaultSqlSession.commit(DefaultSqlSession.java:146) at org.apache.ibatis.session.defaults.DefaultSqlSession.commit(DefaultSqlSession.java:138) at com.cssweb.analytics.persistence.ServiceTest.main(ServiceTest.java:151) Caused by: java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(Native Method) at oracle.jdbc.driver.T4CRowidAccessor.unmarshalOneRow(T4CRowidAccessor.java:202) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:610) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216) at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955) at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10622) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:67) at $Proxy2.executeBatch(Unknown Source) at org.apache.ibatis.executor.BatchExecutor.doFlushStatements(BatchExecutor.java:81) at org.apache.ibatis.executor.BaseExecutor.flushStatements(BaseExecutor.java:97) at org.apache.ibatis.executor.BaseExecutor.flushStatements(BaseExecutor.java:92) at org.apache.ibatis.executor.BaseExecutor.commit(BaseExecutor.java:172) at org.apache.ibatis.executor.CachingExecutor.commit(CachingExecutor.java:80) at org.apache.ibatis.session.defaults.DefaultSqlSession.commit(DefaultSqlSession.java:143) ... 2 more
错误发生在下面这行:
at org.apache.ibatis.executor.BatchExecutor.doFlushStatements(BatchExecutor.java:81)
不知道这里面具体做了些什么事情,导致数组越界?
2012年8月10日 16:52
目前还没有答案
相关推荐
解决mybatis头文件报错 下载好压缩包 解压将文件放到本地文件夹 例如 D盘的哪个文件夹 D:\mybatis\ ;然后打开eclipse ->Window->prefenrence->XML->XML Catalog->User Specifiled Entreis->Add->Location(此处是你...
mybatis批处理自动生成代码文件,可以双击运行.bat文件。 targetProject="src\main\java"可以在XML配置文件中更改生成文件的路径
#mybatis批处理测试 背景 如何在Mybatis和XML中的foreach中批处理Sqlsession 应用于mybatis批处理测试的技术如下: 使用开源 版本 Java 1.7 春天 4.1.5 摇动 2.2.1 Mybatis 3.2.8 功能细节 mybatis-batch-...
mybaits 多线程 实现数据批量插入 (运用CountDownLatch实现闭锁) 1、mybatis批处理 2、数据分批量查询 3、数据分批量插入
主要给大家介绍了mybatis中foreach报错:_frch_item_0 not found的解决方法,文章通过示例代码介绍了详细的解决方法,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
在操作数据库时,经常会碰到批量插入、批量删除的情况,直接执行SQL语句还好做一点,当使用Mybatis进行批量插入、批量删除时会有一些问题。下面对使用Mybatis批量插入,批量删除进行介绍。 1. 批量插入 Java代码...
解决spring-boot整合mybatis-plus启动报错问题; Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2020-08-04 20:19:03.246 ERROR 18020 --- ...
语音媒体格式转换工具,支持wav、vox、sln、raw、alaw、al、pcm、ulaw、ul、mu、ogg、ilbc、gsm、g729、g726、g723、au、mp3等语音格式相互转换。
第三方缓存整合mybatis.rar
主要介绍了Mybatis返回int或者Integer类型报错的解决办法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
主要介绍了使用mybatis-plus报错Invalid bound statement (not found)错误,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了Mybatis报错: org.apache.ibatis.exceptions.PersistenceException解决办法的相关资料,需要的朋友可以参考下
mybatis框架在执行批量插入或者更新的时候限制入参...突破mybatis批处理数据量2100个的限制,另一个应用场景是,即使没有用到mybatis,也可以作为自动分批提交的工具,防止一次性提交数据过大导致数据库自动提高锁级别
主要介绍了Mybatis批量更新报错的问题及解决办法,包括mybatis批量更新的两种方式,需要的的朋友参考下
mybatis返回int会报错,改成Integer封装类型可以解决,具体参考我的博客
今天在项目中,使用Mybatis对oracle数据库进行操作的时候,报出ORA-00911: invalid character的错误,检查了一下SQL,发现都书写正确啊,复制到plsql上执行也都没问题,这什么原因呢,下面通过本文给大家解答下
mybatis generator Myeclipse插件 含详细说明和mysql oracle的依赖包
MyBatis批量插入,效率经测试,1000条数据,批量插入和单条插入,执行效率至少快一倍,送上源码,供参考学习
idea 中使用mybatis插入进行快速开发 在idea中设置导入插件即可
使用Mybatis Generator自动生成Mybatis相关代码