springboot mybatis 多数据源组合使用

项目结构

@Configuration

@MapperScan(basePackages ="com.example.demo3.mapper.mapper23", sqlSessionTemplateRef  ="primarySqlSessionTemplate")

public class DataSource23Config {

@Bean(name ="primaryDataSource")

@ConfigurationProperties(prefix ="datasource.primary")

@Primary

    public DataSource testDataSource() {

return DataSourceBuilder.create().build();

}

@Bean(name ="primarySqlSessionFactory")

@Primary

    public SqlSessionFactory testSqlSessionFactory(@Qualifier("primaryDataSource") DataSource dataSource)throws Exception {

SqlSessionFactoryBean bean =new SqlSessionFactoryBean();

bean.setDataSource(dataSource);

return bean.getObject();

}

@Bean(name ="primaryTransactionManager")

@Primary

    public DataSourceTransactionManager testTransactionManager(@Qualifier("primaryDataSource") DataSource dataSource) {

return new DataSourceTransactionManager(dataSource);

}

@Bean(name ="primarySqlSessionTemplate")

@Primary

    public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("primarySqlSessionFactory") SqlSessionFactory sqlSessionFactory)throws Exception {

return new SqlSessionTemplate(sqlSessionFactory);

}

}

=====================================================

@Configuration

@MapperScan(basePackages ="com.example.demo3.mapper.mapper51New", sqlSessionTemplateRef  ="freeSqlSessionTemplate")

public class DataSource51ceshiConfig {

@Bean(name ="freeDataSource")

@ConfigurationProperties(prefix ="datasource.free")

public DataSource testDataSource() {

return DataSourceBuilder.create().build();

}

@Bean(name ="freeSqlSessionFactory")

public SqlSessionFactory testSqlSessionFactory(@Qualifier("freeDataSource") DataSource dataSource)throws Exception {

SqlSessionFactoryBean bean =new SqlSessionFactoryBean();

bean.setDataSource(dataSource);

return bean.getObject();

}

@Bean(name ="freeTransactionManager")

public DataSourceTransactionManager testTransactionManager(@Qualifier("freeDataSource") DataSource dataSource) {

return new DataSourceTransactionManager(dataSource);

}

@Bean(name ="freeSqlSessionTemplate")

public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("freeSqlSessionFactory") SqlSessionFactory sqlSessionFactory)throws Exception {

return new SqlSessionTemplate(sqlSessionFactory);

}

}

==============================================

@Configuration

@MapperScan(basePackages ="com.example.demo3.mapper.mapper51", sqlSessionTemplateRef  ="secondarySqlSessionTemplate")

public class DataSource51Config {

@Bean(name ="secondaryDataSource")

@ConfigurationProperties(prefix ="datasource.secondary")

public DataSource testDataSource() {

return DataSourceBuilder.create().build();

}

@Bean(name ="secondarySqlSessionFactory")

public SqlSessionFactory testSqlSessionFactory(@Qualifier("secondaryDataSource") DataSource dataSource)throws Exception {

SqlSessionFactoryBean bean =new SqlSessionFactoryBean();

bean.setDataSource(dataSource);

return bean.getObject();

}

@Bean(name ="secondaryTransactionManager")

public DataSourceTransactionManager testTransactionManager(@Qualifier("secondaryDataSource") DataSource dataSource) {

return new DataSourceTransactionManager(dataSource);

}

@Bean(name ="secondarySqlSessionTemplate")

public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("secondarySqlSessionFactory") SqlSessionFactory sqlSessionFactory)throws Exception {

return new SqlSessionTemplate(sqlSessionFactory);

}

}

======================================================

@Service

@Mapper

public interface UserMapper1 {

@Select("select id,name,age from stu")

@Results({

@Result(property ="id", column ="id"),

@Result(column="name", property="name"),

@Result(column="age", property="age")

})

List findAll();

@Select("SELECT * FROM stu WHERE id=#{id}")

@Results({

@Result(property ="id", column ="id"),

@Result(column="name", property="name"),

@Result(column="age", property="age")

})

StuCeshi findOne(Integer id);

@Insert("INSERT INTO stu(name,age) VALUES (#{name},#{age})")

void addOne(StuCeshi user);

@Update("UPDATE stu SET name=#{name},age=#{age} WHERE id=#{id}")

void updateOne(StuCeshi user);

@Delete("DELETE FROM stu WHERE id=#{id}")

void delOne(Integer id);

}

========================================================

@Service

@Mapper

public interface People {

@Select("select * from v_SubERP_EmpInfo where Status = '在职'")

List findAll();

}

===========================================================

@Service

@Mapper

public interface UserMapper2 {

@Select("select id,mail,name,phone from contact")

@Results({

@Result(column="id",property="id"),

@Result(column="mail",property="mail"),

@Result(column="name",property="name"),

@Result(column="phone",property="phone")

})

List findAll();

@Select("SELECT * FROM contact WHERE id=#{id}")

@Results({

@Result(column="id",property="id"),

@Result(column="mail",property="mail"),

@Result(column="name",property="name"),

@Result(column="phone",property="phone")

})

User findOne(Integer id);

@Insert("INSERT INTO contact(mail,name,phone) VALUES (#{mail},#{name},#{phone})")

void addOne(User user);

@Update("UPDATE contact SET mail=#{mail},name=#{name},phone=#{phone} WHERE id=#{id}")

void updateOne(User user);

@Delete("delete FROM contact WHERE id=#{id}")

void delOne(Integer id);

}

=========================================================

datasource.primary.jdbc-url=jdbc:sqlserver://192.168.0.23:1433;DatabaseName=xiaoceshi

datasource.primary.username=sa

datasource.primary.password=yanmade2016!

datasource.secondary.jdbc-url=jdbc:sqlserver://192.168.0.51:1433;DatabaseName=AIS002test20161201

datasource.secondary.username=suberp

datasource.secondary.password=K3@)!*2018

datasource.free.jdbc-url=jdbc:sqlserver://192.168.0.51:1433;DatabaseName=xiaoceshi

datasource.free.username=suberp

datasource.free.password=K3@)!*2018

====================================================

##################################################

maven的pom文件添加以下:

##################################################

=====================================================

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>2.0.1</version>

</dependency>


<dependency>

<groupId>com.microsoft.sqlserver</groupId>

<artifactId>mssql-jdbc</artifactId>

<scope>runtime</scope>

</dependency>


<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-devtools</artifactId>

<optional>true</optional>

</dependency>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容