當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring Boot MyBatis配置多种数据库
生活随笔
收集整理的這篇文章主要介紹了
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/*.xml2. 新增數(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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS 钥匙串的基本使用
- 下一篇: ES6模块与commonJS模块的差异