我对 spring jdbcTemplate 有疑问。它曾经工作正常但现在它不返回任何值,也没有错误消息它卡住说“DEBUG | [main] | org.springframework.jdbc.core.JdbcTemplate:query(711) | Executing prepared SQL query”,我尝试使用 namedParameterJDBCTemplate 和 JDBCTemplate
请在下面找到我的 hikari 配置:
<bean id="configPropertyPlaceholderConfigurer" class="com.msci.dm.configuration.client.ConfigPropertyPlaceHolderConfigurer" /> <bean id="gedHikariConfig" class="com.zaxxer.hikari.HikariConfig"> <property name="connectionTestQuery" value="select 1 from dual" /> <property name="driverClassName" value="oracle.jdbc.OracleDriver" /> <property name="jdbcUrl" value="jdbc:oracle:thin:@${some_db_name}" /> <property name="username" value="${some_db_username}" /> <property name="password" value="${some_db_password}" /> <property name="maximumPoolSize" value="50"/> <property name="minimumIdle" value="2" /> <property name="connectionTimeout" value="600000"/> <property name="dataSourceProperties"> <props> <prop key="v$session.program">some_program</prop> </props> </property> </bean> </beans>
请在下面找到 JDBC 模板配置:
<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager">
<ref bean="gedTransactionManager" />
</property>
</bean>
<bean id="gedTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref bean="gedOracleDataSource" />
</property>
</bean>
<bean id="oraJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<constructor-arg index="0">
<ref bean="gedOracleDataSource" />
</constructor-arg>
<property name="fetchSize" value="10000" />
<property name="queryTimeout" value="300" />
</bean>
<bean id="gedNamedJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
<constructor-arg index="0" ref="oraJdbcTemplate" />
</bean>
<bean id="gedOracleDataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<constructor-arg ref="gedHikariConfig" />
</bean>
<bean id="vdbOracleDatasource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<constructor-arg ref="vdbHikariConfig" />
</bean>
我尝试了多种方法来解决这个问题,但无法解决。 另请注意,当我在本地运行它时,它可以正常工作,但是当应用程序在 UAT (Linux) 中运行时,它会卡住,当我在 SQL 中运行查询时,我得到了结果(查询的数据库中只有 4 个结果)。正在使用 ojdbc10。
请在下面找到日志:
2023-05-17 15:20:16,341 | DEBUG | [main] | org.springframework.jdbc.datasource.DataSourceUtils:doGetConnection(116) | Fetching JDBC Connection from DataSource 2023-05-17 15:20:17,344 | DEBUG | [main] | somePackage.someClass:someMethod(99) | [someMethod] deleteMakerQuery ::
--some query---
2023-05-17 15:20:17,344 | DEBUG | [main] | somePackage.someClass:someMethod(100) | [someMethod] paramMap :: {someParms=134975, someParms=1, someParms=134975} 2023-05-17 15:20:17,344 | DEBUG | [main] | org.springframework.jdbc.core.JdbcTemplate:query(711) | Executing prepared SQL query