如果应用中涉及到多数据源问题,例如一个主库,另外需要访问其他库中少量表,可以这样配置:
数据源配置:
<bean id="umpDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://${ump.jdbc.host}:${ump.jdbc.port}/${ump.jdbc.database}?useUnicode=true&characterEncoding=GBK"/>
<property name="username" value="${ump.jdbc.user}"/>
<property name="password" value="${ump.jdbc.password}"/>
</bean>
<bean id="hm-dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://${hm.jdbc.host}:${hm.jdbc.port}/${hm.jdbc.database}?useUnicode=true&characterEncoding=GBK"/>
<property name="username" value="${hm.jdbc.user}"/>
<property name="password" value="${hm.jdbc.password}"/>
</bean>
共用一个SqlMapClient:
<bean id="sqlMapClient" class="cn.org.rapid_framework.ibatis.spring.SqlMapClientFactoryBean">
<property name="configLocation">
<value>classpath:sqlmap-config.xml</value>
</property>
<property name="mappingLocations">
<list>
<value>classpath*:/com/teamsun/**/dao/*.xml</value>
</list>
</property>
<property name="dataSource" ref="umpDataSource"/>
<!-- 指定数据库分页方言Dialect, 其它方言:OracleDialect,SQLServerDialect,SybaseDialect,DB2Dialect,PostgreSQLDialect,MySQLDialect,DerbyDialect,HSQLDialect-->
<property name="sqlExecutor">
<bean class="cn.org.rapid_framework.ibatis.sqlmap.engine.execution.LimitSqlExecutor">
<property name="dialect">
<bean class="cn.org.rapid_framework.jdbc.dialect.MySQLDialect"/>
</property>
</bean>
</property>
</bean>
访问主库的Dao配置,没有指定DataSource,共享SqlMapClient中的DataSource:
<bean id="upgradeinfoDao" class="com.xxx.dao.UpgradeinfoSpringDaoImpl">
<property name="sqlMapClient" ref="sqlMapClient"/>
</bean>
访问其他数据库的Dao配置,明确指定具体的dataSource:
<bean id="hostsDao" class="com.teamsun.hm.dao.HostsSpringDaoImpl">
<property name="sqlMapClient" ref="sqlMapClient"/>
<property name="dataSource" ref="hm-dataSource"/>
</bean>
本文介绍了一种在应用程序中配置多数据源的方法,包括主库和其他辅助数据库的设置,并展示了如何通过共享SqlMapClient来实现跨数据源的数据访问。
9579

被折叠的 条评论
为什么被折叠?



