MyBatis ExecutorType.BATCH 报ORA-01000: 超出打开游标的最大数的解决
1、登陆以dba管理角色权限登陆oracle,修改oracle默认游标最大数。
查看当前打开的游标数目
select count(*) from v$open_cursor;
修改Oracle最大游标数
alter system set open_cursors=1000 scope=both;
2、修改代码
最快捷方式修改 ExecutorType.BATCH 处理方式:
修改前:
batchSession = sessionFactory.openSession(ExecutorType.BATCH, session.getConnection());
修改后(手动提交):
batchSession = sessionFactory.openSession(false);
PreparedStatement prest = session.getConnection().prepareStatement(
commitFetchFrameSql, ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
for (FetchFrame fetchFrame : foundFrames) {
prest.setInt(1, fetchFrame.getState().getIndex());
prest.setTimestamp(2, new Timestamp(fetchFrame
.getRetrieveTime().getTime()));
prest.setInt(3, fetchFrame.getActualSpecsvsId());
prest.setLong(4, fetchFrame.getId());
prest.addBatch();
}
int[] executeBatch = prest.executeBatch();
两者处理方式都行,但是从性能来看 第一种方式处理效率比第二种最快快了1倍。
不建议从根本上解决问题,这涉及修改源码。 目前这种情况碰到oracle才出现过,所以,应该oracle特性导致的。
原因:应该是打开的statement或者preperedment过多导致的。而mybatis的这种ExecutorType.BATCH 处理方式是以List的preperedment来处理的。
有人说因为session.close是回到连接池而没有关闭连接的,我怀疑这种说法,因为跟踪了源码应该与session.close是无关的。
分享到:
相关推荐
在oracle里面运行一下,解决Exception java.sql.SQLException ORA-00600 内部错误代码
赠送jar包:mybatis-paginator-1.2.15.jar; 赠送原API文档:mybatis-paginator-1.2.15-javadoc.jar; 赠送源代码:mybatis-paginator-1.2.15-sources.jar; 赠送Maven依赖信息文件:mybatis-paginator-1.2.15.pom;...
赠送jar包:mybatis-plus-boot-starter-3.5.1.jar; 赠送原API文档:mybatis-plus-boot-starter-3.5.1-javadoc.jar; 赠送源代码:mybatis-plus-boot-starter-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-...
mybatis-spring-boot-starter-2.1.4.jarmybatis-spring-boot-starter-2.1.4.jar
赠送jar包:mybatis-plus-extension-3.5.1.jar; 赠送原API文档:mybatis-plus-extension-3.5.1-javadoc.jar; 赠送源代码:mybatis-plus-extension-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-...
idea创建Maven项目时,报错显示Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.0.2:resources,并且Maven插件内看不到 mybatis-generator。如下图: 折腾了好久发现配置放错地方了,...
赠送jar包:mybatis-plus-boot-starter-3.1.0.jar; 赠送原API文档:mybatis-plus-boot-starter-3.1.0-javadoc.jar; 赠送源代码:mybatis-plus-boot-starter-3.1.0-sources.jar; 赠送Maven依赖信息文件:mybatis-...
今天在项目中,使用Mybatis对oracle数据库进行操作的时候,报出ORA-00911: invalid character的错误,检查了一下SQL,发现都书写正确啊,复制到plsql上执行也都没问题,这什么原因呢? 注意:这里说的是用navicat...
1. **配置解析**:MyBatis的配置文件(mybatis-config.xml)被解析成Configration对象,这个对象包含了所有的全局配置信息,如数据源、事务管理器、Mappers等。解析过程主要由XMLConfigBuilder类完成。 2. **...
赠送jar包:mybatis-spring-boot-autoconfigure-2.1.1.jar; 赠送原API文档:mybatis-spring-boot-autoconfigure-2.1.1-javadoc.jar; 赠送源代码:mybatis-spring-boot-autoconfigure-2.1.1-sources.jar; 赠送...
java运行依赖jar包
然后打开eclipse ->Window->prefenrence->XML->XML Catalog->User Specifiled Entreis->Add->Location(此处是你放dtd文件的位置例如:D:\mybatis\mybatis-3-config.dtd)->Key(如果更改config,此处应该是:-//...
MyBatis-Plus是一个强大的扩展库,它是MyBatis框架的增强工具,旨在简化开发,减少常规 CRUD(创建、读取、更新、删除)操作的代码量。在本指南中,我们将详细介绍如何安装和使用mybatis-plus.jar以及相关的mybatis-...
free-idea-mybatis is an enchange plugin for idea to supoort mybatis,here is the main functions: generate mapper xml files navigate from the code to mapper and from the mapper back to code auto code...
本工程为 MyBatis-Plus 的官方示例,项目结构如下: mybatis-plus-sample-quickstart: 快速开始示例 mybatis-plus-sample-quickstart-springmvc: 快速开始示例(Spring MVC版本) mybatis-plus-sample-reduce-...
mybatis-plus-boot-starter.jar 各个版本下载, SpringBoot 集成 MybatisPlus jar 包下载, Mybatis-Plus(简称MP)是一个基于MyBatis的增强工具库,它简化了与数据库的交互操作并提供了一系列增强功能,使开发者...
Mybatis-ehcache 1.2.1 是一个集成Mybatis和Ehcache的缓存模块,用于提高Mybatis框架的查询效率。Ehcache是一个广泛使用的Java缓存解决方案,它能够有效地存储和检索数据,减少数据库的负载,提高应用程序性能。在...
赠送jar包:mybatis-spring-boot-autoconfigure-1.3.2.jar; 赠送原API文档:mybatis-spring-boot-autoconfigure-1.3.2-javadoc.jar; 赠送源代码:mybatis-spring-boot-autoconfigure-1.3.2-sources.jar; 赠送...
主要用来测试 docker部署springboot的jar包
赠送jar包:mybatis-generator-core-1.3.7.jar; 赠送原API文档:mybatis-generator-core-1.3.7-javadoc.jar; 赠送源代码:mybatis-generator-core-1.3.7-sources.jar; 赠送Maven依赖信息文件:mybatis-generator-...