`
勒布朗
  • 浏览: 71321 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

使用Spring+Hibernate连接JNDI数据源

 
阅读更多

现在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,增加以下内容即可。

Xml代码 复制代码 收藏代码
  1. <Resource name="jdbc/testDS" auth="Container"  
  2.   type="javax.sql.DataSource" driverClassName="org.apache.derby.jdbc.ClientDriver"  
  3.   url="jdbc:derby://localhost:1527/testdb;create=true"  
  4.   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标准建议开发者进行修改,对资源进行引用,增加以下内容即可。

Xml代码 复制代码 收藏代码
  1. <resource-ref>  
  2.     <description>Test DataSource</description>  
  3.     <res-ref-name>jdbc/testDS</res-ref-name>  
  4.     <res-type>javax.sql.DataSource</res-type>  
  5.     <res-auth>Container</res-auth>  
  6. </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版本,这样定义:

Xml代码 复制代码 收藏代码
  1. <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">  
  2.     <property name="jndiName">  
  3.         <value>java:comp/env/jdbc/testDS</value>  
  4.     </property>  
  5. </bean>  
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName">
        <value>java:comp/env/jdbc/testDS</value>
    </property>
</bean>

    对于Spring2.x,Spring增加了一种新的定义方法:

Xml代码 复制代码 收藏代码
  1. <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。

Xml代码 复制代码 收藏代码
  1. <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
  2.     <property name="dataSource" ref="dataSource" />  
  3.     <!-- 其他参数省略 -->  
  4. </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可以使用通配符,即

Xml代码 复制代码 收藏代码
  1. <context-param>  
  2.     <param-name>contextConfigLocation</param-name>  
  3.     <param-value>classpath*:/appContext*.xml</param-value>  
  4. </context-param>  
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:/appContext*.xml</param-value>
</context-param>

    但是在Weblogic和WebSphere中,不能使用通配符,只能一个个列举,待研究。

Xml代码 复制代码 收藏代码
  1. <context-param>  
  2.     <param-name>contextConfigLocation</param-name>  
  3.     <param-value>classpath*:/appContext1.xml,classpath*:/appContext2.xml</param-value>  
  4. </context-param>  
分享到:
评论

相关推荐

    Spring+SpringMVC +Hibernate 整合

    5. 数据源配置:在Spring配置文件中,配置DataSource,可以使用DBCP、C3P0等连接池,或者使用JNDI查找数据源。 6. 事务管理:Spring 提供了声明式事务管理,可以在配置文件中声明事务边界,由Spring自动管理事务的...

    springmvc+spring3+hibernate4整合

    整合Spring MVC、Spring 3和Hibernate 4是一个涉及多个方面的工作,包括配置文件的设置、实体管理器的获取、数据源的配置等。以下是详细的知识点: 1. 工具和版本选择:在搭建Spring+SpringMVC+JPA+Hibernate平台时...

    struts2+spring+hibernate整合实例

    - 配置数据源:设置JNDI数据源或者在Spring配置文件中定义DataSource,连接数据库。 - 测试整合:创建简单的示例项目,如用户登录注册,验证整合是否成功。 5. **优势**:这种整合提供了模型层、服务层和视图层的...

    struts2.3.24+spring4.2+hibernate5.0整合jar

    C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,提供了管理数据库连接的功能。在SSH整合中,C3P0可以高效地管理数据库连接,避免资源浪费,提高系统性能。 Oracle驱动是连接Oracle数据库的关键组件,它...

    Struts+Spring+Hibernate 整合教程

    - **3.2 配置数据源**:Spring 支持多种数据源配置方式,包括JNDI、C3P0、DBCP等。 - **步骤**: 1. 在Spring配置文件中定义数据源。 2. 配置连接池参数。 - **3.3 配置SessionFactory**:SessionFactory 是 ...

    Struts+Spring+Hibernate整合教程

    - 配置数据源:在Spring中配置数据源,以连接到后端数据库,可以使用JNDI、JDBC或者数据库连接池等。 - 配置sessionFactory:定义sessionFactory Bean来完成对象与关系数据库之间的映射关系配置。 - 配置事务:...

    最新版本的Struts2+Spring4+Hibernate4三大框架整合(改进:增加整合Quartz和Gson)

    (1) 提供支持三种数据源方案:C3P0、DBCP、JNDI,三选一,请注释或删除其他方案 (2) 提取四种Hibernate整合方案:四选一,请注释或删除其他方案 (3) 提供两种声明式事务管理器方案:二选一,请注释或删除其他...

    webwork2.1.7+spring+hibernate3+oracle+weblogic8.1登录示例(详解)

    数据源名设为"dataSource",并绑定了JNDI名称`jndiname_wl`,关联到刚才创建的连接池。 7. **数据库表结构**:创建了一个名为"TOWER.PERSON"的表,包含字段ID(主键)、USERNAME、PASSWORD和EMAIL。一个唯一索引"ID...

    struts+spring+hibernate笔试题

    - **实现:** 使用 `JndiObjectFactoryBean` 可以获取 JNDI 资源,如数据源。 **Spring Web 支持:** - **配置监听器:** 通过在 web.xml 文件中配置监听器类(如 ContextLoaderListener),可以在启动时加载 ...

    Spring整合Hibernate案例

    - **配置DataSource**:定义数据源,可以使用Spring的`DataSource`实现,如`BasicDataSource`或JNDI数据源。 - **配置SessionFactoryBean**:将DataSource与Hibernate配置文件链接起来,并设置其他属性如缓存策略...

    Spring2.5+Hibernate3整合

    9. **JNDI 数据源配置**:在企业环境中,通常通过 JNDI(Java Naming and Directory Interface)查找数据源,Spring 支持从 JNDI 获取并配置数据源,供 Hibernate 使用。 10. **配置文件**:整合过程中,需要配置 ...

    ireport300教程,含框架(IReport+spring+hibernate)

    2. **数据源配置**:IReport支持多种数据源,包括JDBC、JNDI、XML、CSV等。在本教程中,你将学习如何连接到由Hibernate管理的数据库,并基于SQL查询获取数据。 3. **表达式和变量**:在报表中,你可以使用表达式来...

    jsf+spring+hibernate 配置.pdf

    在Spring的`applicationContext.xml`中,你需要配置Hibernate的数据源、SessionFactory以及事务管理器。例如: ```xml &lt;bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"&gt; ...

    SSH (Struts2+Spring3+Hibernate3) +Proxool_亲测成功 费大劲了.zip

    SSH(Struts2+Spring3+Hibernate3)是一种常见的Java Web开发框架组合,它整合了...通过Spring管理数据源和事务,Hibernate处理数据持久化,Struts2处理用户交互,而Proxool则优化了数据库连接的使用,提高了系统性能。

    基于Struts+Hibernate+Spring的Web_应用开发

    此外,Hibernate支持多种数据库连接方式,包括JDBC、JNDI数据源等。 【任务一】:Hibernate 在10课时的Hibernate学习中,主要目标是理解和掌握Hibernate的基础知识,以及如何在实际项目中运用。这包括: 1. ...

    spring4+hibernate+springmvc+c3p0

    4. **C3P0**:是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,提供了一套完善的数据库连接池管理机制,用于提高数据库连接的复用性和效率。 在描述中提到的"开发常用工具类"可能包括各种辅助类,如日期时间...

Global site tag (gtag.js) - Google Analytics