日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

多数据源:spring boot+mybatisplus配置

發(fā)布時間:2024/10/5 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多数据源:spring boot+mybatisplus配置 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.在application.properties中配置數(shù)據(jù)連接參數(shù)

spring.datasource.test1.jdbc-url=jdbc:sqlserver://localhost:1433;databasename=AA spring.datasource.test1.username=root spring.datasource.test1.password=root spring.datasource.test1.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver spring.datasource.test2.jdbc-url=jdbc:sqlserver://localhost:1433;databasename=AA_Sq spring.datasource.test2.username=root spring.datasource.test2.password=root spring.datasource.test2.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver

2.配置數(shù)據(jù)源

AA數(shù)據(jù)庫的配置

import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; 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.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.jdbc.datasource.DataSourceTransactionManager;import javax.sql.DataSource; //basePackages為dao層接口(用來與數(shù)據(jù)庫做交互)所在的包名 @Configuration @MapperScan(basePackages = {"com.xx.sourceone.mapper"},sqlSessionFactoryRef = "test1SqlSessionFactory") public class DataByAA {// @ConfigurationProperties注解的作用就是從application.properties中讀取以 spring.datasource.test1 開頭的那些配置,并將其設置為數(shù)據(jù)源的配置@Bean(name = "test1DataSource")@ConfigurationProperties(prefix = "spring.datasource.test1")public DataSource testDataSource(){return DataSourceBuilder.create().build();}@Bean(name = "test1SqlSessionFactory")public SqlSessionFactory testSqlSessionFactory(@Qualifier("test1DataSource") DataSource dataSource)throws Exception{MybatisSqlSessionFactoryBean bean=new MybatisSqlSessionFactoryBean();bean.setDataSource(dataSource); // 路徑地址為mapper.xml所在的位置,這個xml是配置文件,處在resource里面,主要用來寫查詢語句bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:/mapperone/**.xml"));return bean.getObject();}@Bean(name = "test1TransactionManager")public DataSourceTransactionManager testTransactionManager(@Qualifier("test1DataSource") DataSource dataSource){return new DataSourceTransactionManager(dataSource);}@Bean(name = "test1SqlSessionTemplate")public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("test1SqlSessionFactory") SqlSessionFactory sqlSessionFactory){return new SqlSessionTemplate(sqlSessionFactory);} }

AA_Sq數(shù)據(jù)庫的配置

import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; 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.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.jdbc.datasource.DataSourceTransactionManager;import javax.sql.DataSource;@Configuration @MapperScan(basePackages = {"com.xx.sourcetwo.mapper"},sqlSessionFactoryRef = "test2SqlSessionFactory") public class DataByAASq {@Bean(name = "test2DataSource")@ConfigurationProperties(prefix = "spring.datasource.test2")public DataSource testDataSource() {return DataSourceBuilder.create().build();}@Bean(name = "test2SqlSessionFactory")public SqlSessionFactory testSqlSessionFactory(@Qualifier("test2DataSource") DataSource dataSource) throws Exception {MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();bean.setDataSource(dataSource);bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:/mappertwo/**.xml"));return bean.getObject();}@Bean(name = "test2TransactionManager")public DataSourceTransactionManager testTransactionManager(@Qualifier("test2DataSource") DataSource dataSource) {return new DataSourceTransactionManager(dataSource);}@Bean(name = "test2SqlSessionTemplate")public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("test2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);} }

項目結構如下圖

?

?

3.controller 層

訪問AA數(shù)據(jù)庫

@RestController public class XxWebController {@AutowiredXxWebMapper xxWebMapper;@PostMapping("/api/list")public Result getList(String sjname){Map<String,Object> map = new HashMap<>();try {XxWeb sjName = xxWebMapper.selectOne(new QueryWrapper<XxWeb>().eq("SjName", sjname));map.put("datas",sjName);return Result.ok(map);}catch (Exception e){return Result.fail(901);}} }

訪問AA——Sq數(shù)據(jù)庫

@RestController public class RfgcglController {@AutowiredUserMapper userMapper;@PostMapping("/api2/list")public Result getList(String yhmc){Map<String,Object> map = new HashMap<>();try {User yhmc1 = userMapper.selectOne(new QueryWrapper<User>().eq("yhmc", yhmc));map.put("datas",yhmc1);return Result.ok(map);}catch (Exception e){e.printStackTrace();return Result.fail(901);}} }

?

配置多數(shù)據(jù)源時,通過查找mybatis-plus官方文檔得知,不能使用原生的 SqlSessionFactory

?

注意紅色標注的代碼,如果mybatisplus配置多數(shù)據(jù)源時使用的SqlSessionFactory不是MybatisSqlSessionFactoryBean,會報錯Invalid bound statement (not found);如果mybatisplus配置多數(shù)據(jù)源時不設置掃描XML文件的路徑,也會報錯Invalid bound statement (not found);如果mybatisplus配置多數(shù)據(jù)源時配置掃描XML文件的路徑不正確,還會報錯Invalid bound statement (not found)

?

?

總結

以上是生活随笔為你收集整理的多数据源:spring boot+mybatisplus配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。