package com.xx.demo.config; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import javax.sql.DataSource; @Configuration @MapperScan(basePackages = "com.xx.demo.dao.db2",sqlSessionTemplateRef = "db2SqlSessionTemplate") public class Datasource2Config { @Bean(name = "db2DataSource") @ConfigurationProperties("spring.datasource.db2") @Primary public DataSource db2DataSource(){ return DataSourceBuilder.create().build(); } @Bean(name = "db2DataSessionFactory") @Primary public SqlSessionFactory db2DataSessionFactory(@Qualifier("db2DataSource") DataSource dataSource ) throws Exception{ SqlSessionFactoryBean bean=new SqlSessionFactoryBean(); bean.setDataSource(dataSource); bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/db2/*.xml")); return bean.getObject(); } @Bean(name = "db2TransactionManager") @Primary public DataSourceTransactionManager db2TransactionManager(@Qualifier("db2DataSource")DataSource dataSource){ return new DataSourceTransactionManager(dataSource); } @Bean(name = "db2SqlSessionTemplate") @Primary public SqlSessionTemplate db2SessionTemplate(@Qualifier("db2DataSessionFactory")SqlSessionFactory sqlSessionFactory){ return new SqlSessionTemplate(sqlSessionFactory); } }
spring: datasource: db1: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://xxx:3306/test password: xx username: xx db2: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver url: jdbc:microsoft:sqlserver://xxx:1443/test password: xx username: xx
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xx.demo.dao.db1.Demo">
<insert id="xx" useGeneratedKeys="true" >
</insert>
<select id="xx" resultType="java.lang.String">
</select>
<delete id="xx" parameterType="com.xx.demo.pojo.xx">
</delete>
<update id="xx"> </update>
</mapper>