Jdbc 驱动错误
Ojdbc driver error
我正在尝试优化从我的 Java 应用程序到 Oracle 数据库的查询性能,因为 sql 开发人员工具执行的相同查询比 java 应用。
我有两个不同的数据库(一个用于 test/developer,另一个用于生产)。
开发者数据库版本为:11g Enterprise Edition Release 11.2.0.1.0 - 64bit
生产数据库版本为:11g Enterprise Edition Release 11.2.0.3.0 - 64bit
我的 java 应用程序使用 ojdbc14 驱动程序,它适用于两个数据库,但性能查询运行缓慢。所以在调查之后,我读到开始提高性能的一个好方法是在 java 应用程序中使用正确的 ojdbc 驱动程序(根据数据库版本)。于是下载了ojdbc6驱动(for 11.2.0.3 oracle version)。这在开发人员数据库中工作正常,但是当我尝试连接生产数据库时出现下一个错误:
java.lang.NoSuchMethodError: 甲骨文.i18n.text.converter.CharacterConverterOGS.getInstance(I)Loracle/i18n/text/converter/CharacterConverter;
我尝试使用不同的 ojdbc 驱动程序版本 (5、6),但我得到了同样的错误,仅在生产数据库中。
有帮助吗?
对不起我的英语。
问候。
编辑 1:
@CSK
我正在使用 Spring MVC,这是我用于数据库连接的 ApplitacionContext xml:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driverClassName}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="maxPoolSize" value="${jdbc.maxPoolSize}" />
<property name="minPoolSize" value="${jdbc.minPoolSize}" />
<property name="maxStatements" value="${jdbc.maxStatements}" />
</bean>
<bean id="dataSourceDataStage" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.datastage.driverClassName}"/>
<property name="jdbcUrl" value="${jdbc.datastage.url}"/>
<property name="user" value="${jdbc.datastage.username}"/>
<property name="password" value="${jdbc.datastage.password}"/>
<property name="maxPoolSize" value="${jdbc.datastage.maxPoolSize}" />
<property name="minPoolSize" value="${jdbc.datastage.minPoolSize}" />
<property name="maxStatements" value="${jdbc.datastage.maxStatements}" />
我认为您在生产环境中的类路径有问题。因此,如果可能,请尝试将 jar 文件 (orai18n.jar) 直接添加到您的项目并再次检查。
就我而言,它有效并希望它有所帮助!
我正在尝试优化从我的 Java 应用程序到 Oracle 数据库的查询性能,因为 sql 开发人员工具执行的相同查询比 java 应用。 我有两个不同的数据库(一个用于 test/developer,另一个用于生产)。
开发者数据库版本为:11g Enterprise Edition Release 11.2.0.1.0 - 64bit
生产数据库版本为:11g Enterprise Edition Release 11.2.0.3.0 - 64bit
我的 java 应用程序使用 ojdbc14 驱动程序,它适用于两个数据库,但性能查询运行缓慢。所以在调查之后,我读到开始提高性能的一个好方法是在 java 应用程序中使用正确的 ojdbc 驱动程序(根据数据库版本)。于是下载了ojdbc6驱动(for 11.2.0.3 oracle version)。这在开发人员数据库中工作正常,但是当我尝试连接生产数据库时出现下一个错误:
java.lang.NoSuchMethodError: 甲骨文.i18n.text.converter.CharacterConverterOGS.getInstance(I)Loracle/i18n/text/converter/CharacterConverter;
我尝试使用不同的 ojdbc 驱动程序版本 (5、6),但我得到了同样的错误,仅在生产数据库中。
有帮助吗?
对不起我的英语。
问候。
编辑 1:
@CSK
我正在使用 Spring MVC,这是我用于数据库连接的 ApplitacionContext xml:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driverClassName}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="maxPoolSize" value="${jdbc.maxPoolSize}" />
<property name="minPoolSize" value="${jdbc.minPoolSize}" />
<property name="maxStatements" value="${jdbc.maxStatements}" />
</bean>
<bean id="dataSourceDataStage" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.datastage.driverClassName}"/>
<property name="jdbcUrl" value="${jdbc.datastage.url}"/>
<property name="user" value="${jdbc.datastage.username}"/>
<property name="password" value="${jdbc.datastage.password}"/>
<property name="maxPoolSize" value="${jdbc.datastage.maxPoolSize}" />
<property name="minPoolSize" value="${jdbc.datastage.minPoolSize}" />
<property name="maxStatements" value="${jdbc.datastage.maxStatements}" />
我认为您在生产环境中的类路径有问题。因此,如果可能,请尝试将 jar 文件 (orai18n.jar) 直接添加到您的项目并再次检查。
就我而言,它有效并希望它有所帮助!