使用SSM框架配置多个数据库连接
2017-06-13 19:58
351 查看
最近做同步数据的时候需要将数据同步到另一个数据库中,也就是跨库操作,这就需要我们配置多个数据库连接来进行操作,具体代码如下:
1、在jdbc.properties配置文件内配置两个数据库连接:
2、在application-mybatis.xml配置文件中引入数据库连接:
3、获取当前使用的数据源:
4、切换数据源的工具类:
1、在jdbc.properties配置文件内配置两个数据库连接:
ds1.driverClassName=com.mysql.jdbc.Driver ds1.url=jdbc:mysql://127.0.0.1:3306/img_dist-2017?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull ds1.username=123 ds1.password=123 ds2.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver ds2.url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Swfy ds2.username=123 ds2.password=123 ##定义初始连接数 initialSize=0 ##定义最大连接数 maxActive=20 ##定义最大空闲 maxIdle=20 ##定义最小空闲 minIdle=1 ##定义最长等待时间 maxWait=60000
2、在application-mybatis.xml配置文件中引入数据库连接:
<!-- 引入配置文件 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties" /> </bean> <bean id="dataSource" class="com.siweisoft.utils.dynamicDataSource.DynamicDataSource"> <property name="targetDataSources"> <map key-type="java.lang.String"> <!-- 指定lookupKey和与之对应的数据源 --> <entry key="ds1" value-ref="ds1"></entry> <entry key="ds2" value-ref="ds2"></entry> </map> </property> <!-- 这里可以指定默认的数据源 --> <property name="defaultTargetDataSource" ref="ds1" /> </bean> <bean id="ds1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${ds1.driverClassName}" /> <property name="url" value=" be0e ${ds1.url}" /> <property name="username" value="${ds1.username}" /> <property name="password" value="${ds1.password}" /> <!-- 初始化连接大小 --> <property name="initialSize" value="${initialSize}"></property> <!-- 连接池最大数量 --> <property name="maxActive" value="${maxActive}"></property> <!-- 连接池最大空闲 --> <property name="maxIdle" value="${maxIdle}"></property> <!-- 连接池最小空闲 --> <property name="minIdle" value="${minIdle}"></property> <!-- 获取连接最大等待时间 --> <property name="maxWait" value="${maxWait}"></property> </bean> <bean id="ds2" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${ds2.driverClassName}" /> <property name="url" value="${ds2.url}" /> <property name="username" value="${ds2.username}" /> <property name="password" value="${ds2.password}" /> <!-- 初始化连接大小 --> <property name="initialSize" value="${initialSize}"></property> <!-- 连接池最大数量 --> <property name="maxActive" value="${maxActive}"></property> <!-- 连接池最大空闲 --> <property name="maxIdle" value="${maxIdle}"></property> <!-- 连接池最小空闲 --> <property name="minIdle" value="${minIdle}"></property> <!-- 获取连接最大等待时间 --> <property name="maxWait" value="${maxWait}"></property> </bean>
3、获取当前使用的数据源:
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; /** * Created by Robin on 2017-06-09. */ public class DynamicDataSource extends AbstractRoutingDataSource { /** * 取得当前使用那个数据源。 */ @Override protected Object determineCurrentLookupKey() { return DbContextHolder.getDbType(); } }
4、切换数据源的工具类:
/** * Created by Robin on 2017-06-09. */ public class DbContextHolder { private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>(); /** * 设置当前数据库。 * @param dbType */ public static void setDbType(String dbType) { contextHolder.set(dbType); } /** * 取得当前数据源。 * @return */ public static String getDbType() { String str = (String) contextHolder.get(); return str; } /** * 清除上下文数据 */ public static void clearDbType() { contextHolder.remove(); } }
相关文章推荐
- SSM框架配置多数据源连接不同的数据库
- ssm框架学习---传统使用jdbc连接数据库的问题
- java ee SSM框架连接数据库四个配置文件之二: mybatis-config.xml文件配置
- java ee SSM框架连接数据库四个配置文件之一: db-context.xml文件配置
- Castle ActiveRecord 使用动态填写参数方式配置数据库连接
- Castle ActiveRecord 使用动态填写参数方式配置数据库连接
- 使用JSP连接ORACEL数据库做的登录框架
- ASP.NET中使用web.config配置web应用程序中的数据库连接
- 【Android】在Android上使用OrmLite数据库框架 之 使用表配置文件
- 通过Visual Studio 2005 中的数据源选择对话框实现数据库连接配置(用户使用)
- jdbc数据库连接管理封装工具类,不同使用属性文件配置数据库连接信息(1)
- ASP.NET中使用web.config配置数据库连接
- Castle ActiveRecord 使用 Web.config 配置数据库连接方式
- Castle ActiveRecord 使用动态填写参数方式配置数据库连接
- java中使用应用服务器配置的数据库连接
- ASP.NET中使用web.config配置数据库连接
- ASP.NET中使用web.config配置web应用程序中的数据库连接
- 配置BEA WebLogic 8.1 JDBC连接--Oracle 8.1.7数据库使用的WebLogic 8.1 JDBC配置
- 使用weblogic连接池来得到数据库连接(通过配置文件进行读取的优化方案)
- 配置BEA WebLogic 8.1 JDBC连接--Oracle 8.1.7数据库使用的WebLogic 8.1 JDBC配置