快速业务通道

在SpringSide 2.0中使用多个数据库 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23

在SpringSide 2.0中使用多个数据库

时间:2010-12-05

为了提高网站将来向外扩展的能力,我是用了数据分割的架构,这就要求我的网站能够灵活的访问多个数据库,如果是直接操作JDBC,这根本就不成问题。但是在SpringSide2.0中,由于集成了Hibernate,所以对数据的访问大部分时候都是通过配置实现的。

要想在SpringSide2.0中使用多个数据库,最简单的办法就是配置多个sessionFactory,下面是我的探索步骤。

首先,要修改src/resources/config目录下的jdbc.properties文件,定义多个数据库的连接,如下:

jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.urlYumDaysIndex=jdbc:mysql://localhost:3306/YumDaysIndex?useUnicode=true&characterEncoding=utf8 jdbc.urlYumDays001=jdbc:mysql://localhost:3306/YumDays001?useUnicode=true&characterEncoding=utf8

然后,修改src/resources/spring目录下的dataAccessContext-hibernate.xml文件,定义多个数据源,它们之间只有url属性不同:

<!-- 数据源定义,使用Apache DBCP 连接池 -->    <bean id="dataSourceYumDaysIndex" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">      <property name="driverClassName" value="${jdbc.driverClassName}"/>      <property name="url" value="${jdbc.urlYumDaysIndex}"/>      <property name="username" value="${jdbc.username}"/>      <property name="password" value="${jdbc.password}"/>    </bean>    <!-- 数据源定义,使用Apache DBCP 连接池 -->    <bean id="dataSourceYumDays001" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">      <property name="driverClassName" value="${jdbc.driverClassName}"/>      <property name="url" value="${jdbc.urlYumDays001}"/>      <property name="username" value="${jdbc.username}"/>      <property name="password" value="${jdbc.password}"/>    </bean>

然后,还是修改这个文件,定义多个sessionFactory,它们之间只有数据源的属性不同:

<!--Hibernate SessionFatory-->    <bean id="sessionFactoryIndex" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">      <property name="dataSource" ref="dataSourceYumDaysIndex"/>      <property name="annotatedClasses">        <list>          <value>com.yumdays.model.Catalog</value>          <value>com.yumdays.model.Statistic</value>        </list>      </property>      <property name="hibernateProperties">        <props>         <!-- see /components/orm/hibernate/meta/dialect.properties for all Dialect -->          <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>          <prop key="hibernate.sh

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号