`
return_space
  • 浏览: 20892 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring管理hibernate多数据源的配置

阅读更多

spring 是一个很强大的框架,可以完成很多的任务,这公司这次项目中,我使用到了spring的数据源配置,定时调度任务,事务处理等

    我会在使用相关的文章来阐述这些使用了,也相当于总结一下!

    这篇文章我将讲解spring管理hibernate多数据源的配置。

    我们先来看看spring的applicationContext.xml配置文件

 

  <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="locations">
   <list>
    <value>classpath:datasource.properties</value>
   </list>
  </property>
 </bean>
  <!-- 中间表的数据源-->
  <bean id="dataSourceMysql" class="org.apache.commons.dbcp.BasicDataSource">
  
  <property name="driverClassName" value="${jdbc.driverClassName}"/>
  <property name="url" value="${jdbc.url}"/>
  <property name="username" value="${jdbc.username}"/>
  <property name="password" value="${jdbc.password}"/>
  
   
  <property name="initialSize" value="${pool.initialSize}" />
  <property name="maxActive" value="${pool.maxActive}" />
  <property name="maxIdle" value="${pool.maxIdle}" />
  <property name="maxWait" value="${pool.maxWait}" />
  <property name="poolPreparedStatements" value="${pool.poolPreparedStatements}" />
  <property name="defaultAutoCommit" value="${pool.defaultAutoCommit}" />
 </bean>
 <bean id="sessionFactoryMysql" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="dataSource">
   <ref bean="dataSourceMysql"/>
  </property>
  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">
     ${hibernate.dialectMysql}
    </prop>
    <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
    <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
    <prop key="hibernate.use_sql_comments">${hibernate.use_sql_comments}</prop>    
    <prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}</prop>
    <prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop>
    <prop key="hibernate.cache.provider_configuration_file_resource_path">${hibernate.ehcache_config_file}</prop>
   </props>
  </property>
  
  
  <property name="mappingResources">
   <list>
    <value>com/mytest/bean/Incident.hbm.xml</value>
    </list>
  </property>
 </bean>
 
 
 
 <!-- itsm -->
  <bean id="dataSourceItsm" class="org.apache.commons.dbcp.BasicDataSource">
  
  <property name="driverClassName" value="${itsm.driverClassName}"/>
  <property name="url" value="${itsm.url}"/>
  <property name="username" value="${itsm.username}"/>
  <property name="password" value="${itsm.password}"/>
  
   
  <property name="initialSize" value="${pool.initialSize}" />
  <property name="maxActive" value="${pool.maxActive}" />
  <property name="maxIdle" value="${pool.maxIdle}" />
  <property name="maxWait" value="${pool.maxWait}" />
  <property name="poolPreparedStatements" value="${pool.poolPreparedStatements}" />
  <property name="defaultAutoCommit" value="${pool.defaultAutoCommit}" />
 </bean>

 
 <bean id="sessionFactoryItsm" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="dataSource">
   <ref bean="dataSourceItsm"/>
  </property>
  <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.use_sql_comments">${hibernate.use_sql_comments}</prop>    
    <prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}</prop>
    <prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop>
    <prop key="hibernate.cache.provider_configuration_file_resource_path">${hibernate.ehcache_config_file}</prop>
   </props>
  </property>
    <property name="mappingResources">
   <list>
    <value>com/mytest/bean/Incident.hbm.xml</value>
   </list>
  </property>
 </bean>

 

 

上面使用了PropertyPlaceHolderConfigurer ,这个类可以使spring的配置文件的数据来动态获取,如:<property name="driverClassName" value="${jdbc.driverClassName}"/>其中jdbc.driverClassName的值从哪来的呢?

它定义在 datasource.properties中各文件中,它的内容为:

 

## JDBC  Mysql properties
jdbc.datasourceName=itsm
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/itsm
jdbc.username=root
jdbc.password=fansichi

## ITSM  JDBC properties
itsm.datasourceName=ITSM
itsm.driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver
itsm.url=jdbc:microsoft:sqlserver://192.168.0.91:1433;DatabaseName=Test
itsm.username=sa
itsm.password=sa

#pool properties
pool.initialSize=5
pool.maxActive=100
pool.maxIdle=30
pool.maxWait=1000
pool.poolPreparedStatements=true
pool.defaultAutoCommit=false

## Hibernate properties

hibernate.dialectMysql=org.hibernate.dialect.MySQLDialect
hibernate.dialect=org.hibernate.dialect.SQLServerDialect
hibernate.show_sql=true
hibernate.format_sql=true
hibernate.use_sql_comments=true
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
hibernate.cache.use_query_cache=true;
hibernate.ehcache_config_file=/ehcache/ehcache-hibernate-local.xml

 

 

上面其他的的属性的值 也是通过这种方式获取的

上面配置了两个datasource:datasourceMysql和datasourceItsm  她们对应的sessionFactory 分别是:sessionFactoryMysql 和sessionFactoryItsm,记住一点这spring中是不应许bean的id值相同的,所以我们起了两个不同的名字来命名这两个sessionFactory.

有了sessionFactory我们就可以注入到继承了HibernateTemplate类的dao类,就可以完成数据库相关的操作了。

 

分享到:
评论

相关推荐

    spring boot 2多数据源,里面有hibernate和mybatis的多数据源代码

    在多数据源的场景下,Hibernate提供了灵活的数据源配置,可以在同一个应用中管理多个数据库连接。这通常通过定义不同的SessionFactory配置和DataSource实例来实现。 **MyBatis** 则是一个轻量级的ORM框架,它比...

    spring3+springmvc+jpa+hibernate多数据源

    总之,"spring3+springmvc+jpa+hibernate多数据源"项目展示了如何在一个复杂的Java Web应用中,利用Spring框架的灵活性和JPA的便利性,高效地管理多个数据库。这样的设置对于处理多样化数据存储需求的企业级应用来说...

    Spring+Hibernate多数据源

    本示例将探讨如何在Spring和Hibernate环境中实现多数据源的配置与管理。 首先,我们来看标题"Spring+Hibernate多数据源",这意味着我们要在一个项目中同时配置和使用两个数据源。通常,这涉及到创建两个不同的...

    springboot2.0多数据源集成hibernate配置hibernateDaoSupport示例

    本示例主要介绍如何实现Spring Boot 2.0多数据源的集成,并结合Hibernate进行配置,特别是在DAO层使用`HibernateDaoSupport`进行操作,而非使用JPA(Java Persistence API)。 首先,让我们了解Spring Boot 2.0的...

    spring+hibernate解决多数据源问题3.pdf

    综上所述,解决多数据源问题主要涉及对Spring与Hibernate整合配置的理解、装饰器设计模式的应用,以及动态数据源管理的实现。通过将这些知识点结合起来,开发人员可以灵活地为复杂业务需求下的应用配置和管理多个...

    spring集合hibernate多数据切换

    本知识点主要探讨如何在Spring中集成Hibernate来实现多数据源的动态切换功能,这对于需要处理多种数据源的应用来说至关重要。 首先,我们需要理解什么是多数据源。多数据源意味着一个应用程序可以连接并操作多个...

    针对SSH框架Spring管理Hibernate连接多个数据源配置文件

    该配置文件连接的是两个数据库结构相同的数据源,其他比如数据库结构不原理也可行。本人在遇到此问题时上网搜了很多答案结果都不怎么如意,有的太深奥不过思想很好,有的又太不给力,后来自己慢慢研究配置成功后想与...

    spring+hibernate+atomikos多数据源

    在多数据源环境中,Hibernate可以通过SessionFactory配置多个数据源,每个数据源对应一个SessionFactory。 3. **Atomikos**: Atomikos是一个开源的JTA(Java Transaction API)实现,提供分布式事务管理服务。在...

    spring数据源配置

    Spring框架作为一种流行的轻量级Java应用开发框架,提供了强大的数据库访问支持,其中包括对数据源的配置管理。数据源(DataSource)在Spring中的配置对于实现持久层操作至关重要。 #### 二、Spring中的数据源配置...

    hibernate多数据库配置

    Hibernate 多数据库配置 在 Hibernate 中配置多数据库,并自由切换,可以使用 Spring 框架来实现。...使用 Spring 框架和 Hibernate,我们可以轻松地配置多数据库连接信息,并自由切换不同的数据源。

    Spring+hibernate整合源代码

    你需要在 Spring 配置文件中定义数据源 Bean,如使用 DriverManagerDataSource 或者 DataSourceProxy,提供连接数据库所需的 JDBC 配置信息。 4. **SessionFactory 创建**:使用 Spring 的 LocalSessionFactoryBean...

    Spring 数据源不同配置

    如果使用Spring Data JPA或Hibernate,数据源配置更为简单,因为它们会自动创建并管理数据源。Spring Data JPA通过`spring-boot-starter-data-jpa`依赖自动配置了JPA和HikariCP数据源。 总的来说,Spring提供了...

    Hibernate配置数据源.

    根据描述中的内容,我们可以将Hibernate中配置数据源的方式大致分为三种:直接在Hibernate配置文件中定义、通过外部配置文件指明数据源以及利用现有的容器管理的数据源。 #### 四、配置方法详解 ##### 1. 在...

    spring3+hibernate4+maven+junit 多库多数据源实现

    "Spring3+Hibernate4+Maven+JUnit 多库多数据源实现"是一个典型的Java Web项目配置,它涉及了多个核心技术来处理复杂的数据管理需求。下面将详细阐述这些技术以及如何协同工作以实现多库多数据源。 首先,Spring...

    spring+jotm 多数据源事务管理(二)hibernate

    总结来说,Spring结合JOTM和Hibernate进行多数据源事务管理,主要涉及以下几个步骤:配置JOTM依赖,定义XADataSource,创建并配置AtomikosTransactionManager,设定事务策略,以及正确地集成Hibernate ...

    spring+hibernate+webwork相关配置

    对于Hibernate,需要配置SessionFactory,可能还包括数据源、事务管理器等。 3. **配置Hibernate**:配置Hibernate的`hibernate.cfg.xml`文件,指定数据库连接参数,实体映射文件的位置,以及缓存策略。还需要在...

    spring和hibernate、数据源所需要的jar包,内附一个小实例

    有了这些jar包,开发者就可以配置Spring和Hibernate的整合,实现数据源的管理,使用Hibernate的SessionFactory和Session进行数据库操作,同时利用Spring的事务管理功能确保数据的一致性。 在实际项目中,开发者通常...

    springmvc+spring+hibernate

    3. **配置Spring**:在src/main/resources下创建applicationContext.xml文件,配置Spring的核心容器,包括Bean定义、数据源、事务管理器等。例如,使用DataSource来连接Oracle数据库,使用...

    strut+spring+hibernate注册登录系统

    Spring框架则是一个全面的后端解决方案,提供依赖注入(DI)和面向切面编程(AOP)等核心特性,用于管理对象的生命周期和配置。在这个系统中,Spring可以管理Struts的动作类(Action)以及服务层(Service)的bean,...

Global site tag (gtag.js) - Google Analytics