?
前言:
? 做一个移动应用的后台服务器,涉及到多数据库,以及数据库集群配置:数据源用spring管理,中间封装了自己的jdbc
?
看配置文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="pm" class="*****.hibernate.HibernatePersistenceManager"> <property name="sessionFactory"> <ref bean="sessionFactorydx" /> </property> </bean> <bean id="dbTool" class="***.util.DBTool"> <property name="dataSource"> <ref bean="dataSourcedx" /> </property> </bean> <bean id="jdbcPM" class="*****.jdbc.JDBCPersistenceManager"> <property name="dbTool"> <ref bean="dbTool" /> </property> </bean> > </property> </bean> <bean id="dbToolbao" class="***.util.DBTool"> <property name="dataSource"> <ref bean="dataSourceBaob" /> </property> </bean> <bean id="jdbcCore" class="****.jdbc.JDBCPersistenceManager"> <property name="dbTool"> <ref bean="dbToolbao" /> </property> </bean> <bean id="dataSourceBaob" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@(description = (failover = on) (address_list = (address = (protocol = tcp)(host = ***)(port = ***)) (address = (protocol = tcp)(host = ***)(port = ***))) (CONNECT_DATA = (SERVICE_NAME =****) (SERVER = DEDICATED) (FAILOVER_MODE = (TYPE = select) (METHOD = basic)))) " /> <property name="" value="" /> <property name="" value="" /> </bean> <bean id="dataSourcedx" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=P****)(PORT=**))(CONNECT_DATA=(SERVER=dedicated)(SID=***)))" /> <property name="username" value="**v" /> <property name="password" value="****" /> </bean> </beans>
?
?上面的配置文件,关键信息已经屏蔽,大致配置过程有,里面配了两个数据源,一个普通的数据源,另外一个集群数据库数据源配置。如果大家在陪集群数据源时出错,很可能是引入的class12.jar包不全,建议重新换jar包,因为这个原因在本地测试时发现拿conn时 不稳定,时有时无。开始我们还以为是网络问题,后来发现是class12.jar包中某些文件缺失,正规的class12.jar包大概1.2M,如果少了肯定就是不对的。
?
?
说明:1.自己封装的JDBCPersistenceManager ,这个类里有dbtool这个属性,这个属性为DBTool类型
2.datasource其实是封装在DBTool类里.
我们用的是JDBCPersistenceManager 这个类拿数据库连接.
?
?
2.如果大家部署到服务器上,比如在weblogic上配置,则改成如下形式即可:
<bean id="dataSourceBaob" class="org.springframework.jndi.JndiObjectFactoryBean" > <property name="jndiName"> <value>dataSourceBaob</value> </property> </bean> <bean id="dataSourcedx" class="org.springframework.jndi.JndiObjectFactoryBean" > <property name="jndiName"> <value>dataSourcedx</value> </property> </bean>
?
数据源配置一样,只不过把数据源交给jndi管理了
?
?
写的比较乱,大家见谅,因为在上班。。嘎嘎
?