`
peahen
  • 浏览: 26770 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

<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>

    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>

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

<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>

    前面谈到第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>

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

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:/appContext1.xml,classpath*:/appContext2.xml</param-value>
</context-param>
0
0
分享到:
评论

相关推荐

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

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

    spring3.2+strut2+hibernate4

    -- 数据源配置,在生产环境使用应用服务器的数据库连接池 --&gt; &lt;!-- &lt;jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/store" /&gt;--&gt; &lt;!--Hibernate配置--&gt; ...

    Spring应用开发完全手册 源码

    主要内容包括Spring框架开发环境的搭建及使用Spring时必须掌握的基础知识,Spring的数据持久化、事务管理以及企业应用中的远程调用,JNDI命名服务,JMail发送电子邮件等企业级服务,小型网站或应用程序的开发思路、...

    SpringMVC-SpringSecurity-MySql-Hibernate

    Spring教程-2 一些最佳实践和带有MySql数据库的 。 模板使用 ,测试用例使用Junit 。... (本教程使用的是JNDI数据源; &lt;jee:jndi-lookup id="dataSource" jndi-name="jdbc/SpringDB" expected-type="j

    SH+MQ+JPA集成

    spring(3.x)+activeMQ+JPA(Hibernate4.2)+JPARepository 集成 数据源为JNDI或c3p0

    Spring in Action(第2版)中文版

    5.2.1使用jndi数据源 5.2.2使用数据源连接池 5.2.3基于jdbc驱动的数据源 5.3在spring里使用jdbc 5.3.1处理失控的jdbc代码 5.3.2使用jdbc模板 5.3.3使用spring对jdbc的dao支持类 5.4在spring里集成hibernate ...

    Spring in Action(第二版 中文高清版).part2

    5.2.1 使用JNDI数据源 5.2.2 使用数据源连接池 5.2.3 基于JDBC驱动的数据源 5.3 在Spring里使用JDBC 5.3.1 处理失控的JDBC代码 5.3.2 使用JDBC模板 5.3.3 使用Spring对JDBC的DAO支持类 5.4 在Spring里集成...

    Spring in Action(第二版 中文高清版).part1

    5.2.1 使用JNDI数据源 5.2.2 使用数据源连接池 5.2.3 基于JDBC驱动的数据源 5.3 在Spring里使用JDBC 5.3.1 处理失控的JDBC代码 5.3.2 使用JDBC模板 5.3.3 使用Spring对JDBC的DAO支持类 5.4 在Spring里集成...

    Spring.3.x企业应用开发实战(完整版).part2

    8.4.2 获取JNDI数据源 8.4.3 Spring的数据源实现类 8.5 小结 第9章 Spring的事务管理 9.1 数据库事务基础知识 9.1.1 何为数据库事务 9.1.2 数据并发的问题 9.1.3 数据库锁机制 9.1.4 事务隔离级别 9.1.5 JDBC对事务...

    Spring3.x企业应用开发实战(完整版) part1

    8.4.2 获取JNDI数据源 8.4.3 Spring的数据源实现类 8.5 小结 第9章 Spring的事务管理 9.1 数据库事务基础知识 9.1.1 何为数据库事务 9.1.2 数据并发的问题 9.1.3 数据库锁机制 9.1.4 事务隔离级别 9.1.5 JDBC对事务...

    Spring-Reference_zh_CN(Spring中文参考手册)

    配置子报表数据源 14.7.5. 配置Exporter的参数 15. 集成其它Web框架 15.1. 简介 15.2. 通用配置 15.3. JavaServer Faces 15.3.1. DelegatingVariableResolver 15.3.2. FacesContextUtils 15.4. Struts 15.4.1. ...

    c3p0的JAR包

    C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。C3P0数据源在项目开发中使用得比较多。导入相关jar包c3p0-0.9.2-pre1.jar、...

    c3p0连接池

    C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。

    Spring面试题

    正如我将在下一个示例中演示的那样,Spring 框架使用 JavaBean 属性和配置数据来指出必须设置的依赖关系。 BeanFactory 接口 因为 org.springframework.beans.factory.BeanFactory 是一个简单接口,所以可以针对...

    SSM框架-c3p0架包zip

    SSM框架中c3p0架包zip ,C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。

    C3P0连接池jar包

    C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。

    C3P0开源JDBC连接池

    C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring。

    c3p0连接池jar包(全)

    C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。

    数据库连接池的专用jar包c3p0-0.9.1.2.jar

    通过c3p0连接池jar包可以连接到数据库, C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。

    java连接池

    C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。

Global site tag (gtag.js) - Google Analytics