Oracle – 连接池与spring框架

我们正在尝试在Spring Framework的帮助下实现Oracle连接池。 我们正在使用DBCP连接池方法。 然而,DBCP和spring之间的集成并没有那么好。

我们面临的问题是DBCP返回PoolableConnections对象,而Oracle期望OracleConnection对象。 (引发ClassCastException)

似乎这个问题已在Oracle 11g中处理。 但是我很好奇其他人如何使用Spring 10 for Oracle 10g(使用TOMCAT)实现Oracle连接池。

我们使用Ibatis作为ORM框架。

我相信有办法。 任何帮助表示赞赏。

我会使用Oracles提供的解决方案,它包含在他们的ojdbcjar中。 较旧的方法是使用类OracleConnectionPoolDataSource,但现在您可以在常规OracleDataSource上设置参数并获取连接池。

以下是如何在Spring中执行此操作:

   ...all your connection properties   20    

我使用C3PO建立连接。 它还有为您提供连接池的优势。 只需通过spring配置文件定义类型为com.mchange.v2.c3p0.ComboPooledDataSource(或类似)的数据源 bean。 在遇到连接池问题之前,我甚至使用了一个不建议用于生产的spring(DriverManagerDataSource),因为它实际上并没有进行连接池。

这是一个示例弹簧配置。

            

Spring然后将dataSource bean注入Hibernate,一切都很顺利。 您还需要在类路径中包含c3pO jar文件…

如果你正在使用它,你不应该实现自己的池。 Tomcat已经为您完成了这项工作,而是在Tomcat中定义数据源,并让您的ORM框架使用它(当您定义Tomcat数据源时,可以在那里指定池配置)。

如果您可以发布一些代码片段,特别是相关的Spring上下文配置,我可以帮助您提供如何执行此操作的方法。

这是Tomcat文档,它向您展示了如何做到这一点:

顺便说一句,Tomcat也使用DBCP,最好依赖JNDI,因为它使您的代码更具可移植性(从一个环境到另一个环境 – 例如,开发到生产阶段,甚至跨应用程序服务器 – 例如,到WebSphere,WebLogic等)。

而不是使用SimpleNativeJdbcExtractor使用CommonsDbcpNativeJdbcExtractor来获取本机连接。 有用。

使用包装Connections但不包含语句的简单连接池时,SimpleNativeJdbcExtractor通常就足够了。 但是,某些池(如Jakarta的Commons DBCP)会包装它们返回的所有JDBC对象:因此,您需要使用特定的NativeJdbcExtractor(如CommonsDbcpNativeJdbcExtractor)。

点击此处[http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/jdbc/support/nativejdbc/NativeJdbcExtractor.html]

我也遇到了和你一样的问题..所以我使用了Oracle Native连接池..它运行顺畅..

这里是http://www.lambdaprobe.org/d/oracle.shtml的详细链接

谢谢! PRATIK