`

Spring+Hibernate 两个以上数据库连接配置方法

 
阅读更多

 

1、在com下面新建一个包ntclportal

 

2、配置config.properties

a.datasource.type = jdbcDataSource_a

a.datasource.url = jdbc:oracle:thin:@192.168.20.1:1521:test

a.datasource.username = ****

a.datasource.password = ****

a.datasource.jdbc.driver.name = oracle.jdbc.OracleDriver

 

b.datasource.type = jdbcDataSource_b
b.datasource.url = jdbc:oracle:thin:@192.168.20.2:1521:test2
b.datasource.username = ****
b.datasource.password = ****
b.datasource.jdbc.driver.name = oracle.jdbc.OracleDriver

 

3、配置applicationContext.xml

 <bean id="jdbcDataSource_a" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-

method="close">
  
  <property name="driverClass" value="${a.datasource.jdbc.driver.name}" />
  <property name="jdbcUrl" value="${a.datasource.url}" />
  <property name="user" value="${a.datasource.username}" />
  <property name="password" value="${a.datasource.password}" />
  <!-- 最小連接數 -->
  <property name="minPoolSize" value="10"/>
  <!-- 最大連接數 -->
  <property name="maxPoolSize" value="15"/>
  <!--最大空閒時間,1800秒內未使用則連結被丟棄。若為0則永不丟棄。Default: 0

-->
  <property name="maxIdleTime" value="1800"/>
  <!-- 當連接池裡面的連結用完的時候,C3P0一次獲得的新連接數 -->
  <property name="acquireIncrement" value="3"/>
  <!-- 最大的PreparedStatement數量 -->
  <property name="maxStatements" value="1000"/>
  <!-- 初始連接數 -->
  <property name="initialPoolSize" value="10"/>  
  <!-- 每隔120秒檢查連接池裡面的空閒連結,單位秒-->
  <property name="idleConnectionTestPeriod" value="120"/>
  <!-- 從資料庫獲取新連接失敗之後重複嘗試的次數 -->
  <property name="acquireRetryAttempts" value="30" />
  <property name="breakAfterAcquireFailure" value="true" />
  <property name="testConnectionOnCheckout" value="false" />

 </bean>
 
 <bean id="jdbcDataSource_b" class="com.mchange.v2.c3p0.ComboPooledDataSource"

destroy-method="close">
  
  <property name="driverClass" value="${b.datasource.jdbc.driver.name}" />
  <property name="jdbcUrl" value="${b.datasource.url}" />
  <property name="user" value="${b.datasource.username}" />
  <property name="password" value="${b.datasource.password}" />
  <!-- 最小連接數 -->
  <property name="minPoolSize" value="10"/>
  <!-- 最大連接數 -->
  <property name="maxPoolSize" value="15"/>
  <!--最大空閒時間,1800秒內未使用則連結被丟棄。若為0則永不丟棄。Default: 0

-->
  <property name="maxIdleTime" value="1800"/>
  <!-- 當連接池裡面的連結用完的時候,C3P0一次獲得的新連接數 -->
  <property name="acquireIncrement" value="3"/>
  <!-- 最大的PreparedStatement數量 -->
  <property name="maxStatements" value="1000"/>
  <!-- 初始連接數 -->
  <property name="initialPoolSize" value="10"/>  
  <!-- 每隔120秒檢查連接池裡面的空閒連結,單位秒-->
  <property name="idleConnectionTestPeriod" value="120"/>
  <!-- 從資料庫獲取新連接失敗之後重複嘗試的次數 -->
  <property name="acquireRetryAttempts" value="30" />
  <property name="breakAfterAcquireFailure" value="true" />
  <property name="testConnectionOnCheckout" value="false" />

 </bean>

 <!-- ============================================ -->
 <!-- Integration Hibernate -->
 <!-- ============================================ -->
 <!-- org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean -->
 <!-- org.springframework.orm.hibernate3.LocalSessionFactoryBean -->
 <bean id="sessionFactory_a"

class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">${hibernate.dialect}</prop>
    <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
    <prop key="hibernate.format_sql">${hibernate.format_sql}

</prop>
    <prop key="hibernate.max_fetch_depth">5</prop>
    <prop key="hibernate.query.substitutions">true 1, false

0</prop>
    
    <!-- connection release mode : JDBC使用after_transaction;

JTA使用after_statement -->
    <prop

key="hibernate.connection.release_mode">after_transaction</prop>
    
    <!-- Important : This will drop all tables and create new

tables -->
    <!-- <prop key="hibernate.hbm2ddl.auto">create</prop> -->
   </props>
  </property>
  <property name="dataSource" ref="${a.datasource.type}" />
  <property name="packagesToScan" value="com.claridy" />
 </bean>
 
 <bean id="sessionFactory_b"

class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">${hibernate.dialect}</prop>
    <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
    <prop key="hibernate.format_sql">${hibernate.format_sql}

</prop>
    <prop key="hibernate.max_fetch_depth">5</prop>
    <prop key="hibernate.query.substitutions">true 1, false

0</prop>
    
    <!-- connection release mode : JDBC使用after_transaction;

JTA使用after_statement -->
    <prop

key="hibernate.connection.release_mode">after_transaction</prop>
    
    <!-- Important : This will drop all tables and create new

tables -->
    <!-- <prop key="hibernate.hbm2ddl.auto">create</prop> -->
   </props>
  </property>
  <property name="dataSource" ref="${b.datasource.type}" />
  <property name="packagesToScan" value="com.claridy" />
 </bean>

 

4、配置SpringDispatcher-servlet.xml


 <!-- Scans within the base package of the application for @Components to
  configure as beans -->
 <!-- @Controller, @Service, @Configuration, etc. -->
 <context:annotation-config />
 <context:component-scan base-package="com.claridy" />
 <context:component-scan base-package="com.ntclportal" />

 

5、原来的DAO不变,新加的DAO要是使用sessionFactory_b

@Repository
public class PortalHtmlCntDAO extends BaseDAO implements IPortalHtmlCntDAO {
 @Autowired
 public PortalHtmlCntDAO(SessionFactory sessionFactory_b) {
  super.setSessionFactory(sessionFactory_b);
  this.createHibernateTemplate(sessionFactory_b);
 }

 @SuppressWarnings("unchecked")
 public List<PortalHtmlCnt> getPortalHtmlCntList(String svcId)
   throws DataAccessException {

  
  DetachedCriteria detachedCriteria = DetachedCriteria.forClass

(PortalHtmlCnt.class);
  detachedCriteria.add(Restrictions.eq("svcid", svcId));
  return (List<PortalHtmlCnt>) this.findByCriteria(detachedCriteria);

 }

 
}
  
6、记得另一个数据库对应的实体类,service,dao,controller都要放到新建的包下面 

分享到:
评论

相关推荐

    spring+hibernate整合实现简单数据库添加记录

    在IT行业中,Spring和Hibernate是两个非常重要的框架,它们分别在应用层和数据持久化层发挥着关键作用。Spring是一个全面的Java企业级应用开发框架,而Hibernate则是一个优秀的对象关系映射(ORM)工具,它简化了...

    现有Mysql数据库,写Spring + Hibernate的配置文件

    在构建企业级应用程序时,Spring框架和Hibernate是两个非常关键的工具。Spring作为一个全面的开发框架,提供了依赖注入、AOP(面向切面编程)、事务管理等核心功能,而Hibernate则是一个优秀的对象关系映射(ORM)...

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    然后,在类中加入以下两个私有函数: ```java private SessionFactory lookupSessionFactory(HttpServletRequest request) { //TODO: 实现 lookupSessionFactory 函数 } private Session getSession...

    Struts+Spring+Hibernate开发实例.pdf

    标题和描述中指出的文档《Struts+Spring+Hibernate开发实例.pdf》包含了关于这三个流行的Java开源框架结合使用的示例代码和相关知识点。Struts负责视图与控制器部分,Spring负责业务逻辑层及依赖注入,Hibernate负责...

    Spring+Hibernate整合

    在IT行业中,Spring和Hibernate是两个非常重要的框架,它们分别在应用层和数据持久化层发挥着关键作用。Spring是一个全面的Java应用框架,提供依赖注入(DI)、面向切面编程(AOP)以及众多模块,如Web MVC、数据...

    spring+hibernate整合demo

    "可能还有些小地方需要修改才可以使用"暗示了这个示例可能并不完全可运行,需要开发者根据自己的环境进行一些调整,例如数据库连接配置、实体类的定义、持久化映射文件(Hibernate的.hbm.xml或使用注解的方式)等。...

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis

    在这个例子中,Ibatis的SqlMapConfig.xml文件将配置数据库连接和映射文件,Action类会调用Service层的方法,Service层通过Ibatis的SqlSession执行SQL。 整合这两个框架,开发者通常需要做以下工作: - 配置Struts2...

    jsf+spring+hibernate

    在项目中,Hibernate 负责数据持久化,包括数据库连接、CRUD(创建、读取、更新、删除)操作。为了使用 Hibernate,需要配置 JDBC 驱动并在 lib 目录下放置相关 jar 文件。此外,还需要创建数据库表,例如 `USERS` ...

    Spring+hibernate整合源代码

    Spring 和 Hibernate 是两个非常重要的 Java 开发框架,它们在企业级应用开发中有着广泛的应用。Spring 是一个全面的后端应用程序框架,提供了依赖注入、面向切面编程、数据访问、事务管理等多种功能。Hibernate 则...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    12.4.1 Hibernate的两种配置方式 12.4.2 配置数据库连接池 12.4.3 使用JNDI 12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO...

    非注解Springmvc+spring+hibernate 入门实例

    例如,你可以定义一个服务接口和其实现类,然后在Spring容器中声明这两个Bean,并通过`&lt;property&gt;`标签设置依赖关系。 Hibernate是ORM框架的代表,它允许开发者用Java对象来操作数据库,而不是直接编写SQL语句。在...

    spring+hibernate框架demo

    Spring 和 Hibernate 是两个非常重要的 Java 开发框架,它们在企业级应用开发中有着广泛的应用。Spring 是一个全面的后端应用程序框架,而 Hibernate 是一个对象关系映射(ORM)工具,用于简化数据库操作。这个...

    spring+hibernate

    在IT行业中,Spring和Hibernate是两个非常重要的框架,它们在企业级Java应用开发中起着核心作用。Spring是一个全面的后端开发框架,提供依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)以及其他许多功能。...

    Spring+Hibernate+SpringMVC+Maven整合

    Spring的核心特性包括依赖注入(DI)和面向切面编程(AOP),这两个特性使得代码更加模块化和易于测试。此外,Spring还包含了Spring MVC,这是一个用于构建Web应用程序的模型-视图-控制器(MVC)框架。 2. **...

    Spring+Struts2+hibernate+Redis整合

    在IT行业中,SSH(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,而Redis则是一个高性能的键值存储系统,常用于缓存和数据持久化。将SSH与Redis整合,可以提升应用程序的性能和响应速度。下面将...

    spring + hibernate 开发需要 jar包

    在Java开发领域,Spring和Hibernate是两个非常重要的框架,它们分别负责应用的依赖管理和对象关系映射(ORM)。为了在项目中使用Spring和Hibernate,开发者通常需要集成一系列的jar包来构建开发环境。以下是这些jar...

    spring+hibernate整合简单示例

    在IT行业中,Spring和Hibernate是两个非常重要的框架,它们分别在应用层管理和持久化层处理数据。Spring是一个全面的后端开发框架,提供依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等功能,而Hibernate...

    Spring+Hibernate

    6. **整合配置**:Spring 和 Hibernate 的整合需要在 Spring 的配置文件中配置 Hibernate 的 SessionFactory,并通过 DataSource 配置数据库连接。同时,还需要配置事务管理器,如 `PlatformTransactionManager`。 ...

Global site tag (gtag.js) - Google Analytics