spring-jdbcTemple多个数据源连接1

这个文件就是记录了不同的数据库的链接url, username,password等的信息

#jdbc.url=jdbc:mysql://192.168.1.206:3306/dc_app?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
jdbc.driver=com.mysql.jdbc.Driver
jdbc.replication.driver=com.mysql.jdbc.ReplicationDriver
jdbc.url=jdbc:mysql:replication://192.168.1.206:3306,192.168.1.206:3306/dc_app?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
jdbc.username=root
jdbc.password=aaaaaa

#adm.jdbc.url=jdbc:mysql://192.168.1.123:3306/dg_adm?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
adm.jdbc.url=jdbc:mysql://192.168.1.206:3306/dg_adm?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
adm.jdbc.username=root
adm.jdbc.password=aaaaaa

dg.jdbc.url=jdbc:mysql://192.168.1.206:3306/dg2010?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
dg.jdbc.username=root
dg.jdbc.password=aaaaaa

#mall.jdbc.url=jdbc:mysql://192.168.1.210:3306/dgmall?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
mall.jdbc.url=jdbc:mysql://192.168.1.235:3306/dgmall?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
mall.jdbc.username=root
mall.jdbc.password=douguo2015

group.jdbc.url=jdbc:mysql://192.168.1.235:3306/dgcommunity?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
group.jdbc.username=root
group.jdbc.password=douguo2015

dgdata.jdbc.url=jdbc:mysql://192.168.1.235:3306/dgdata?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
dgdata.jdbc.username=root
dgdata.jdbc.password=douguo2015

jdbc.initialPoolSize=2
jdbc.minPoolSize=3
jdbc.maxPoolSize=10
jdbc.acquireIncrement=2
jdbc.maxIdleTime=3600
jdbc.maxStatements=50
jdbc.breakAfterAcquireFailure=false

链接信息记录好以后,在applicationContext.xml中配置上dataSource:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="${jdbc.replication.driver}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="initialPoolSize" value="${jdbc.initialPoolSize}" />
<property name="minPoolSize" value="${jdbc.minPoolSize}" />
<property name="maxPoolSize" value="${jdbc.maxPoolSize}" />
<property name="acquireIncrement" value="${jdbc.acquireIncrement}" />
<property name="maxIdleTime" value="${jdbc.maxIdleTime}" />
<property name="maxStatements" value="${jdbc.maxStatements}" />
<property name="breakAfterAcquireFailure" value="${jdbc.breakAfterAcquireFailure}" />
</bean>
<bean id="dgDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="${jdbc.driver}" />
<property name="jdbcUrl" value="${dg.jdbc.url}" />
<property name="user" value="${dg.jdbc.username}" />
<property name="password" value="${dg.jdbc.password}" />
<property name="initialPoolSize" value="${jdbc.initialPoolSize}" />
<property name="minPoolSize" value="${jdbc.minPoolSize}" />
<property name="maxPoolSize" value="${jdbc.maxPoolSize}" />
<property name="acquireIncrement" value="${jdbc.acquireIncrement}" />
<property name="maxIdleTime" value="${jdbc.maxIdleTime}" />
<property name="maxStatements" value="${jdbc.maxStatements}" />
<property name="breakAfterAcquireFailure" value="${jdbc.breakAfterAcquireFailure}" />
</bean>
<bean id="mallDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="${jdbc.driver}" />
<property name="jdbcUrl" value="${mall.jdbc.url}" />
<property name="user" value="${mall.jdbc.username}" />
<property name="password" value="${mall.jdbc.password}" />
<property name="initialPoolSize" value="${jdbc.initialPoolSize}" />
<property name="minPoolSize" value="${jdbc.minPoolSize}" />
<property name="maxPoolSize" value="${jdbc.maxPoolSize}" />
<property name="acquireIncrement" value="${jdbc.acquireIncrement}" />
<property name="maxIdleTime" value="${jdbc.maxIdleTime}" />
<property name="maxStatements" value="${jdbc.maxStatements}" />
<property name="breakAfterAcquireFailure" value="${jdbc.breakAfterAcquireFailure}" />
</bean>
<bean id="groupDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="${jdbc.driver}" />
<property name="jdbcUrl" value="${group.jdbc.url}" />
<property name="user" value="${group.jdbc.username}" />
<property name="password" value="${group.jdbc.password}" />
<property name="initialPoolSize" value="${jdbc.initialPoolSize}" />
<property name="minPoolSize" value="${jdbc.minPoolSize}" />
<property name="maxPoolSize" value="${jdbc.maxPoolSize}" />
<property name="acquireIncrement" value="${jdbc.acquireIncrement}" />
<property name="maxIdleTime" value="${jdbc.maxIdleTime}" />
<property name="maxStatements" value="${jdbc.maxStatements}" />
<property name="breakAfterAcquireFailure" value="${jdbc.breakAfterAcquireFailure}" />
</bean>

不同的数据库,不同的连接池,这还没完,还需要配置jdbcTemplate:
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" >
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>
<bean id="dgJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" >
<property name="dataSource">
<ref local="dgDataSource" />
</property>
</bean>
<bean id="mallJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" >
<property name="dataSource">
<ref local="mallDataSource" />
</property>
</bean>
<bean id="groupJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" >
<property name="dataSource">
<ref local="groupDataSource" />
</property>
</bean>

不同的数据源,也要配置不同的template,后面的dao在使用的时候也需要用不同的template,详细来说,就是如果有2个功能需要用到不一样的数据库,那么就需要为这2个功能单独写上各自的template:
@Autowired
private JdbcTemplate dgDataJdbcTemplate;
private final String queryUserHuodong = "SELECT * FROM dg_user_huodong WHERE user_id = ? ;" ;
另一个dao:
@Autowired
private JdbcTemplate jdbcTemplate;
private final String querySQL = "select * from crm_vip_user where id=?";
private final String querySQLUID = "select * from crm_vip_user where user_id=?";
private final String queryVipUserListSQL = "SELECT * FROM crm_vip_user";
private final String insertSQL = "INSERT INTO crm_vip_user (user_id, username,headicon,nickname,real_name,address,mobile,country,province,city,weibo_url,tag_id,tag_name,qq_group,principal,createtime,sex,qq,webchat,has_child,domain,user_desc) VALUES (?, ?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
private final String updateTagSQL = "UPDATE crm_vip_user SET tag_id = ? WHERE id = ? ;";
private final String updateSQL = "update crm_vip_user set user_id=?,username=?,headicon=?,nickname=?,real_name=?,address=?,mobile=?,country=?,province=?,city=?,weibo_url=?,tag_id=?,tag_name=?,qq_group=?,principal=?,createtime=?,sex=?,qq=?,webchat=?,has_child=?,domain=?,user_desc=? where id=?";
private final String queryUserHuodong = "SELECT * FROM dg_user_huodong WHERE id = ? ;" ;

---------------------
作者:止鱼
来源:CSDN
原文:https://blog.csdn.net/qq_31573519/article/details/52088173
版权声明:本文为博主原创文章,转载请附上博文链接!

posted @ 2019-05-21 10:14  zhang152  阅读(284)  评论(0编辑  收藏  举报