让jdbc与Hibernate共用同一个proxool数据库连接池,以便用jdbc查询Hibernate增删改。试了三种方法。只有在tomcat6设置jndi的方法较令人满意。
第一种是:
<bean id="TestSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>org.logicalcobwebs.proxool.ProxoolDriver</value>
</property>
<property name="url">
<value>proxool.MyPool</value> <!--proxool是proxool.xml的文件名,MyPool是proxool.xml中配置的别名-->
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
……
结果是Hibernate无法获取dataSource。Hibernate无法运行
第二种是:
<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="driver">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="driverUrl">
<value>jdbc:oracle:thin:@localhost:1521:orcl</value>
</property>
<property name="user">
<value>xxx</value>
</property>
<property name="password">
<value>xxx</value>
</property>
<property name="alias">
<value>JDBCProxool</value>
</property>
<property name="prototypeCount">
<value>3</value>
</property>
<property name="maximumConnectionCount">
<value>30</value>
</property>
<property name="minimumConnectionCount">
<value>15</value>
</property>
<property name="houseKeepingSleepTime">
<value>90000</value>
</property>
<property name="maximumActiveTime">
<value>180000</value>
</property>
</bean>
结果是服务器启动时报错,提示不能将属性houseKeepingSleepTime的值从string转为long。去掉houseKeepingSleepTime后运行正常,但不能配置houseKeepingSleepTime总觉得有点瑕疵。
第三种:
把
数据库驱动包
proxool-0.9.1.jar
proxool-cglib.jar
commons-logging-1.0.4.jar
复制到<tomcat_home>/lib目录下
在tomcat\conf\context.xml 中配置
<Context>
<Resource name="jdbc/OraclePool"
auth="Container"
type="javax.sql.DataSource"
factory="org.logicalcobwebs.proxool.ProxoolDataSource"
proxool.alias="DBPool"
user="xxx"
password="xxx"
delegateProperties="foo=true"
proxool.jndi-name="oraclejndi"
proxool.driver-url="jdbc:oracle:thin:@localhost:1521:orcl"
proxool.driver-class="oracle.jdbc.driver.OracleDriver"
proxool.house-keeping-sleep-time="90000"
proxool.prototype-count="3"
proxool.maximum-connection-count="30"
proxool.minimum-connection-count="15"
/>
</Context>
Spring配置:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/OraclePool</value>
</property>
</bean>
结果是运行正常,这样就可以把dataSource注入jdbctemplate,sessionFactory注入Hibernatetemplate了。
分享到:
相关推荐
7. **配置数据源**:在Web应用的web.xml文件中配置数据源,以便Struts2和Hibernate共用。例如: ```xml <description>DB Connection <res-ref-name>jdbc/TestDB <res-type>javax.sql.DataSource <res-auth>...
3. 创建JdbcTemplate(或MyBatis的SqlSessionFactory)实例,与数据源关联。 4. 在Java代码中通过`@Autowired`和`@Qualifier`注解选择使用哪个数据源。 5. 配置基于注解的事务管理,确保事务与正确的数据源关联。 ...
1. **配置多个数据源**:在Spring的配置文件中,为每个数据库创建一个DataSource bean,例如`dataSource1`和`dataSource2`,并配置相应的JDBC连接信息。 2. **数据源路由**:引入Spring的AbstractRoutingDataSource...
- **TongWeb6.0中的JDBC数据源概述**:详细说明了TongWeb6.0中提供的JDBC数据源的特点和优势。 #### 5.2 JDBC数据源的使用 - **创建数据源连接池**:指导如何在TongWeb6.0中创建一个新的JDBC连接池。 - **查看/编辑...
Spring模块需要包含Spring的核心和数据访问/集成部分的依赖,例如`spring-context`和`spring-jdbc`。Hibernate模块则需要`hibernate-core`和相关的JPA依赖。 在XML配置阶段,我们需要分别在Struts2、Spring和...
配置文件是SQLMap框架的重要组成部分,用于统一配置各种设置,包括数据源、连接信息、映射关系等。配置文件通常使用XML格式,可以包含以下几个主要元素: - **`environments`**:定义环境配置,如数据源类型和事务...