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

歡迎訪問 生活随笔!

生活随笔

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

javascript

Spring Boot MyBatis配置多种数据库

發(fā)布時間:2023/11/29 javascript 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot MyBatis配置多种数据库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

mybatis-config.xml是支持配置多種數(shù)據(jù)庫的,本文將介紹在Spring Boot中使用配置類來配置。

1. 配置application.yml

# mybatis配置 mybatis:check-config-location: falsetype-aliases-package: ${base.package}.modelconfiguration:map-underscore-to-camel-case: true# 二級緩存的總開關cache-enabled: falsemapper-locations: classpath:mapping/*.xml

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

/*** 數(shù)據(jù)源配置* @author simon* @date 2019-02-18*/ @Configuration public class DataSourceConfig {@Value("${mybatis.mapper-locations}")private String mapperLocations;@Primary@Bean@ConfigurationProperties("spring.datasource.druid")public DataSource dataSource(){return DruidDataSourceBuilder.create().build();}@Beanpublic JdbcTemplate jdbcTemplate(){return new JdbcTemplate(dataSource());}@Beanpublic DatabaseIdProvider databaseIdProvider(){DatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider();Properties p = new Properties();p.setProperty("Oracle", "oracle");p.setProperty("MySQL", "mysql");p.setProperty("PostgreSQL", "postgresql");p.setProperty("DB2", "db2");p.setProperty("SQL Server", "sqlserver");databaseIdProvider.setProperties(p);return databaseIdProvider;}@Beanpublic SqlSessionFactoryBean sqlSessionFactoryBean() throws Exception {SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();factoryBean.setDataSource(dataSource());factoryBean.setDatabaseIdProvider(databaseIdProvider());factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapperLocations));return factoryBean;} }

3. 在mapper.xml中使用

方法1

<select id="findAuthorityByUrl" resultType="java.lang.String" databaseId="mysql">SELECTgroup_concat( tsma.authority ) as authorityFROMt_side_menu tsmLEFT JOIN t_side_menu_authority tsma ON tsm.id = tsma.side_menu_id</select><select id="findAuthorityByUrl" resultType="java.lang.String" databaseId="postgresql">SELECTstring_agg( tsma.authority, ',') as authorityFROMt_side_menu tsmLEFT JOIN t_side_menu_authority tsma ON tsm.id = tsma.side_menu_id</select>

方法2

<select id="selectByPids" parameterType="String" resultMap="SuperResultMap">SELECTtsm.*,<if test="_databaseId == 'mysql'">group_concat( tsma.authority ) as authority</if><if test="_databaseId == 'postgresql'">string_agg( tsma.authority, ',') as authority</if>FROMt_side_menu tsmLEFT JOIN t_side_menu_authority tsma ON tsm.id = tsma.side_menu_idWHERE pid IN (#{pids})GROUP BYtsm.id</select>

題外話

如果有興趣,請給oauthserer項目一個star。oauthserver是一個基于Spring Boot Oauth2的完整的獨立的Oauth2 Server微服務。項目的目的是,僅僅需要創(chuàng)建相關數(shù)據(jù)表,修改數(shù)據(jù)庫的連接信息,你就可以得到一個Oauth2 Server微服務。

總結

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

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