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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

mybatis plus当月数据查询_Springboot+mybatis(plus)+druid多数据源

發布時間:2025/3/12 javascript 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis plus当月数据查询_Springboot+mybatis(plus)+druid多数据源 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:

我不太喜歡AOP讀自定義注解來切換數據源.因為如果我一個業務里需要同時查2個數據源的數據而又不想把這個業務拆成2個方法的時候,就比較麻煩了.

所以我打算根據package來掃描注入不同的DataSource.可能是我搜索的姿勢不太對 , 資料比較少.也會碰到不少坑.所以記錄一下.

正文:

mybatis 和 mybatisplus的區別不大 ,一起記了.

springboot 和 mybatis jar就不說了.

druid的jar??

<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.1</version> </dependency>
  • 配置數據庫連接信息
  • spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedruid:# psi 庫psi:url: jdbc:postgresql://127.0.0.1:5432/psidbdriver-class-name: org.postgresql.Driverusername: usernamepassword: password# b2b 庫b2badapter:url: jdbc:mysql://127.0.0.1:13306/b2b?useSSL=false&zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=UTF-8&characterSetResults=UTF-8&allowMultiQueries=truedriver-class-name: com.mysql.jdbc.Driverusername: usernamepassword: username

    其實就是在spring.datasource.druid下再指定2個連接.

    2.有了連接信息, 就去代碼配置DataSource的Bean了.

    @Configuration public class DataSourceConfig {/*** PSI 庫連接配置前綴 (與 yml 中的連接信息前綴一致 , 下同)*/private static final String PSI_DATASOURCE_PREFIX = "spring.datasource.druid.psi";/*** PSI 庫連接Bean名字*/public static final String PSI_DATASOURCE_BEAN_NAME = "psiDataSource";/*** B2B 庫中間庫連接配置前綴*/private static final String B2B_DATASOURCE_PREFIX = "spring.datasource.druid.b2badapter";/*** B2B 庫中間庫連接Bean名字*/public static final String B2B_DATASOURCE_BEAN_NAME = "b2bDataSource";@Primary@Bean(name = PSI_DATASOURCE_BEAN_NAME)@ConfigurationProperties(prefix = PSI_DATASOURCE_PREFIX)public DruidDataSource psi() {return new DruidDataSource();}@Bean(name = B2B_DATASOURCE_BEAN_NAME)@ConfigurationProperties(prefix = B2B_DATASOURCE_PREFIX)public DruidDataSource b2b() {return new DruidDataSource();} }

    這個@Primary還是有點用, 等下說.

    3.配置每個庫對應的SqlSessionFactory

    以第一個庫(psi)舉例

    @Configuration @MapperScan(basePackages = "com.a.b.c.d.e.psi.dao", sqlSessionTemplateRef = "psiSqlSessionTemplate") public class PsiDataSourceConfig {@Autowired@Qualifier(DataSourceConfig.PSI_DATASOURCE_BEAN_NAME)private DataSource psi;@Primary@Bean("psiSqlSessionFactory")public SqlSessionFactory psiSqlSessionFactory() throws Exception {MybatisSqlSessionFactoryBean factoryBean = new MybatisSqlSessionFactoryBean();factoryBean.setDataSource(psi);MybatisConfiguration configuration = new MybatisConfiguration();configuration.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);configuration.setJdbcTypeForNull(JdbcType.NULL);factoryBean.setConfiguration(configuration);//指定xml路徑.factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:com/a/b/c/d/e/psi/mapper/*Dao.xml"));return factoryBean.getObject();}@Primary@Bean("psiSqlSessionTemplate")public SqlSessionTemplate psiSqlSessionTemplate() throws Exception {SqlSessionTemplate template = new SqlSessionTemplate(psiSqlSessionFactory()); // 使用上面配置的Factoryreturn template;} }

    算了, 第二個也放上來吧

    @Configuration @MapperScan(basePackages = "com.a.b.c.d.e.b2b.dao", sqlSessionTemplateRef = "b2bSqlSessionTemplate") public class B2BDataSourceConfig {@Autowired@Qualifier(DataSourceConfig.B2B_DATASOURCE_BEAN_NAME)private DataSource b2b;@Bean("b2bSqlSessionFactory")public SqlSessionFactory b2bSqlSessionFactory() throws Exception {MybatisSqlSessionFactoryBean factoryBean = new MybatisSqlSessionFactoryBean();factoryBean.setDataSource(b2b);MybatisConfiguration configuration = new MybatisConfiguration();configuration.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);configuration.setJdbcTypeForNull(JdbcType.NULL);factoryBean.setConfiguration(configuration);//指定xml路徑.factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:com/a/b/c/d/e/b2b/mapper/*Dao.xml"));factoryBean.setPlugins(new Interceptor[]{new PaginationInterceptor(),new PerformanceInterceptor(),new OptimisticLockerInterceptor()});return factoryBean.getObject();}@Bean("b2bSqlSessionTemplate")public SqlSessionTemplate b2bSqlSessionTemplate() throws Exception {SqlSessionTemplate template = new SqlSessionTemplate(b2bSqlSessionFactory()); // 使用上面配置的Factoryreturn template;} }這個配置是MybatisPlus的MybatisSqlSessionFactoryBean,通過這個類才能使用MybatisPlus的BaseMapper

    如果只是Mybatis的話...

    @Bean public SqlSessionFactory mysqlSqlSessionFactory() throws Exception {SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();factoryBean.setDataSource(b2b);//指定xml路徑.factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:com/a/b/c/d/e/b2b/mapper/*Dao.xml"));return factoryBean.getObject(); }

    普通的SqlSessionFactoryBean就行了..

    這2個數據源就是通過類上的

    @MapperScan(basePackages = "com.a.b.c.d.e.b2b.dao")

    來掃描項目不同包下的Mapper文件來注入不同的數據源.

    如果,萬一,在某些情況下. 2個MapperScan掃描到重復的包怎么辦.....誰有@Primary就誰上..

    4.最后的最后.去掉springboot/jpa,druid等的自動配置

    在啟動類上(當然你也可以在yml里去配)加上

    @SpringBootApplication(exclude = {DruidDataSourceAutoConfigure.class,DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class,DataSourceTransactionManagerAutoConfiguration.class,JpaRepositoriesAutoConfiguration.class })如果是Mybatis的話,.. 只用去掉DataSourceAutoConfiguration.class應該就行了

    /..

    然后, 沒了吧. 就可以用了.

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的mybatis plus当月数据查询_Springboot+mybatis(plus)+druid多数据源的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 久久综合激情 | 亚洲精品视频久久 | 深夜免费视频 | 亚洲人成人一区二区在线观看 | 中文字幕av免费在线观看 | 手机av片| 色老头综合网 | 波多野结av衣东京热无码专区 | 婷婷激情社区 | 亚洲同性gay激情无套 | 一区福利视频 | 亚洲国产成人精品女人 | 日韩中文在线观看 | 激情总合网 | 香蕉久久影院 | 国产欧美一区二区三区在线看蜜臀 | 高清欧美性猛交xxxx黑人猛交 | 日日夜夜91 | 精品视频导航 | 日韩激情久久 | 中文在线观看免费 | 91久久国产综合久久91精品网站 | 久久久香蕉网 | 一区二区三区观看 | 色七七网站| 色狠久 | 国产又粗又大又爽 | 亚洲精品字幕在线观看 | 中国爆后菊女人的视频 | 91av官网 | 日本一区二区不卡在线 | 97在线视频免费观看 | 久久伊人一区二区 | 欧美bbbbbbbbbbbb精品 | 欧美日色 | 波多野结衣操 | 日本www色视频 | 成人日韩视频 | 粉嫩av一区二区 | 中文字幕在线播放不卡 | 国产女大学生av | 激情久久免费视频 | 天堂精品一区二区三区 | 总裁边开会边做小娇妻h | 天天干天天操天天射 | 中文在线字幕免费观看电 | 台湾chinesehdxxxx少妇 | 国产精品丝袜在线 | 日韩国产精品久久 | 国产91白丝在一线播放 | 久久精品一日日躁夜夜躁 | 韩国三级在线 | 王者后宫yin肉h文催眠 | 精品无码久久久久久久久成人 | 桃色一区二区 | 欧美人妻日韩精品 | 日韩av一区二区在线观看 | 怡红院一区二区三区 | 男人喷出精子视频 | 国产一区二区三区色淫影院 | 久久黄网 | 天天夜夜草 | 九九热视频精品在线观看 | 热久久这里只有精品 | 一级特黄性色生活片 | 亚洲黄网在线观看 | 性激情视频 | 二区在线观看 | 奇米狠狠去啦 | 中文字幕无码乱码人妻日韩精品 | 国产99视频在线观看 | 久久久www成人免费精品 | a视频在线看 | 伊人久久久久久久久 | 久久激情av | 日夜夜操 | 中文字幕无码乱码人妻日韩精品 | 狠狠热免费视频 | 肉感丰满的av演员 | 国产精品19乱码一区二区三区 | 久久一道本 | 欧美一区二区大片 | 夜夜夜操操操 | 日本东京热一区二区 | 另类视频一区 | 视频一区二区三区四区五区 | 人人舔人人插 | 亚洲欧美在线一区二区 | 在线观看亚洲av每日更新 | 日韩欧美久久精品 | 毛片在线观看网站 | 蜜桃一区二区三区 | 成人毛片视频网站 | 久久精品视频日本 | 天天爱综合网 | 国产青草视频 | 999精品视频| 久久婷婷综合色丁香五月 | 天天操夜夜摸 |