现在Spring+Hibernate这对组合已经成为J2EE事实上的开发标准,而且J2EE程序一般都需要运行在J2EE应用服务器容器中。虽然我们可以使用Apache组织提供的DBCP数据库连接池访问数据库,但是一个更好的选择是使用应用服务器本身提供的数据库连接池。在开发环境中,我们使用Tomcat,生产环境中,则使用Weblogic、WebSphere等应用服务器。我的配置环境中,应用服务器的版本分别是Tomcat6.0,Weblogic9.2以及WebSphere6.1,数据库使用了derby。无论对于哪一种应用服务器,使用Spring+Hibernate连接JNDI数据源的配置步骤都是类似的,大致分为4步。
1、拷贝数据库驱动包到应用服务器的lib目录下。对于Tomcat,拷贝到tomcat\lib;对于Weblogic,拷贝到bea\user_projects\domains\base_domain\lib;对于WebSphere,拷贝到IBM\WebSphere\AppServer\lib。
2、配置数据源。对于Weblogic和WebSphere这两个商业应用服务器,它们都提供了交互方便的配置界面,网上这方面的资料也很多,按步骤配置就可以了。对于Tomcat,只要修改tomcat\conf\context.xml,增加以下内容即可。
- <Resource name="jdbc/testDS" auth="Container"
-
type="javax.sql.DataSource" driverClassName="org.apache.derby.jdbc.ClientDriver"
-
url="jdbc:derby://localhost:1527/testdb;create=true"
-
username="user" password="pwd" maxActive="20" maxIdle="10"/>
<Resource name="jdbc/testDS" auth="Container"
type="javax.sql.DataSource" driverClassName="org.apache.derby.jdbc.ClientDriver"
url="jdbc:derby://localhost:1527/testdb;create=true"
username="user" password="pwd" maxActive="20" maxIdle="10"/>
3、修改web.xml。实际上该步骤是可有可无的,但是J2EE标准建议开发者进行修改,对资源进行引用,增加以下内容即可。
- <resource-ref>
-
<description>Test DataSource</description>
-
<res-ref-name>jdbc/testDS</res-ref-name>
-
<res-type>javax.sql.DataSource</res-type>
-
<res-auth>Container</res-auth>
-
</resource-ref>
<resource-ref>
<description>Test DataSource</description>
<res-ref-name>jdbc/testDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
4、修改applicationContext.xml。对于Spring1.x版本,这样定义:
- <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
-
<property name="jndiName">
-
<value>java:comp/env/jdbc/testDS</value>
-
</property>
-
</bean>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/testDS</value>
</property>
</bean>
对于Spring2.x,Spring增加了一种新的定义方法:
- <jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/testDS" />
<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/testDS" />
再对Spring中的Hibernate配置进行修改,引用刚刚定义的dataSource。
- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
-
<property name="dataSource" ref="dataSource" />
-
-
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 其他参数省略 -->
</bean>
前面谈到第3步是可有可无的,以上是有第3步的配置。如果第3步未执行,那么对于Tomcat,仍然按照第4步一样的配置就可以。但是对于Weblogic和WebSphere,需要将java:comp/env/jdbc/testDS修改成jdbc/testDS。
在配置过程中,还发现一个问题:Spring如果需要两个或两个以上的配置文件,在Tomcat中的web.xml可以使用通配符,即
- <context-param>
-
<param-name>contextConfigLocation</param-name>
-
<param-value>classpath*:/appContext*.xml</param-value>
-
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/appContext*.xml</param-value>
</context-param>
但是在Weblogic和WebSphere中,不能使用通配符,只能一个个列举,待研究。
- <context-param>
-
<param-name>contextConfigLocation</param-name>
-
<param-value>classpath*:/appContext1.xml,classpath*:/appContext2.xml</param-value>
-
</context-param>
分享到:
相关推荐
5. 数据源配置:在Spring配置文件中,配置DataSource,可以使用DBCP、C3P0等连接池,或者使用JNDI查找数据源。 6. 事务管理:Spring 提供了声明式事务管理,可以在配置文件中声明事务边界,由Spring自动管理事务的...
整合Spring MVC、Spring 3和Hibernate 4是一个涉及多个方面的工作,包括配置文件的设置、实体管理器的获取、数据源的配置等。以下是详细的知识点: 1. 工具和版本选择:在搭建Spring+SpringMVC+JPA+Hibernate平台时...
- 配置数据源:设置JNDI数据源或者在Spring配置文件中定义DataSource,连接数据库。 - 测试整合:创建简单的示例项目,如用户登录注册,验证整合是否成功。 5. **优势**:这种整合提供了模型层、服务层和视图层的...
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,提供了管理数据库连接的功能。在SSH整合中,C3P0可以高效地管理数据库连接,避免资源浪费,提高系统性能。 Oracle驱动是连接Oracle数据库的关键组件,它...
- **3.2 配置数据源**:Spring 支持多种数据源配置方式,包括JNDI、C3P0、DBCP等。 - **步骤**: 1. 在Spring配置文件中定义数据源。 2. 配置连接池参数。 - **3.3 配置SessionFactory**:SessionFactory 是 ...
- 配置数据源:在Spring中配置数据源,以连接到后端数据库,可以使用JNDI、JDBC或者数据库连接池等。 - 配置sessionFactory:定义sessionFactory Bean来完成对象与关系数据库之间的映射关系配置。 - 配置事务:...
(1) 提供支持三种数据源方案:C3P0、DBCP、JNDI,三选一,请注释或删除其他方案 (2) 提取四种Hibernate整合方案:四选一,请注释或删除其他方案 (3) 提供两种声明式事务管理器方案:二选一,请注释或删除其他...
数据源名设为"dataSource",并绑定了JNDI名称`jndiname_wl`,关联到刚才创建的连接池。 7. **数据库表结构**:创建了一个名为"TOWER.PERSON"的表,包含字段ID(主键)、USERNAME、PASSWORD和EMAIL。一个唯一索引"ID...
- **实现:** 使用 `JndiObjectFactoryBean` 可以获取 JNDI 资源,如数据源。 **Spring Web 支持:** - **配置监听器:** 通过在 web.xml 文件中配置监听器类(如 ContextLoaderListener),可以在启动时加载 ...
- **配置DataSource**:定义数据源,可以使用Spring的`DataSource`实现,如`BasicDataSource`或JNDI数据源。 - **配置SessionFactoryBean**:将DataSource与Hibernate配置文件链接起来,并设置其他属性如缓存策略...
9. **JNDI 数据源配置**:在企业环境中,通常通过 JNDI(Java Naming and Directory Interface)查找数据源,Spring 支持从 JNDI 获取并配置数据源,供 Hibernate 使用。 10. **配置文件**:整合过程中,需要配置 ...
2. **数据源配置**:IReport支持多种数据源,包括JDBC、JNDI、XML、CSV等。在本教程中,你将学习如何连接到由Hibernate管理的数据库,并基于SQL查询获取数据。 3. **表达式和变量**:在报表中,你可以使用表达式来...
在Spring的`applicationContext.xml`中,你需要配置Hibernate的数据源、SessionFactory以及事务管理器。例如: ```xml <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> ...
SSH(Struts2+Spring3+Hibernate3)是一种常见的Java Web开发框架组合,它整合了...通过Spring管理数据源和事务,Hibernate处理数据持久化,Struts2处理用户交互,而Proxool则优化了数据库连接的使用,提高了系统性能。
此外,Hibernate支持多种数据库连接方式,包括JDBC、JNDI数据源等。 【任务一】:Hibernate 在10课时的Hibernate学习中,主要目标是理解和掌握Hibernate的基础知识,以及如何在实际项目中运用。这包括: 1. ...
4. **C3P0**:是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,提供了一套完善的数据库连接池管理机制,用于提高数据库连接的复用性和效率。 在描述中提到的"开发常用工具类"可能包括各种辅助类,如日期时间...