Guns 企业版多数据源配置集成dynamic-datasource
生活随笔
收集整理的這篇文章主要介紹了
Guns 企业版多数据源配置集成dynamic-datasource
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、改造多數據源
- 1. 依賴引入
- 2. 啟動類添加注解
- 3. 配置多數據源
- 二、案例實戰
- 2.1. controller
- 2.2. service
- 2.3. impl
- 2.4. mapper
- 2.5. xml
- 三、分頁失效解決方案
一、改造多數據源
1. 依賴引入
目前改用dynamic-datasource方式多數據源處理,配置如下圖:
<!--置動態數據源--><dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>3.4.1</version></dependency>2. 啟動類添加注解
@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)3. 配置多數據源
########################################## 多數據源配置 ############################################ spring:datasource:dynamic:primary: master #設置默認的數據源或者數據源組,默認值即為masterstrict: false #嚴格匹配數據源,默認false. true未匹配到指定數據源時拋異常,false使用默認數據源datasource:master:url: jdbc:mysql://localhost:3306/dbmysql?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&nullCatalogMeansCurrent=trueusername: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driver # 3.2.0開始支持SPI可省略此配置filters: wall,mergeStatoracle_1:driver-class-name: oracle.jdbc.OracleDriverurl: jdbc:oracle:thin:@192.168.xxx.xxx:1521:orclusername: orclpassword: orclfilters: wall,mergeStat二、案例實戰
使用規范:只需要在持久層接口類上添加@DS(“oracle_1”) 注解,里面寫yml配置的數據庫別名即可
2.1. controller
/*** 英雄信息表控制器** @author gblfy* @Date 2021-08-13 11:19:00*/ @Controller @RequestMapping("/hero") public class HeroController extends BaseController {private String PREFIX = "/antifraud/hero";@Autowiredprivate HeroService heroService;/*** 查詢列表** @author gblfy* @Date 2021-08-13*/@ResponseBody@RequestMapping("/list")public LayuiPageInfo list(HeroParam heroParam) {return this.heroService.findPageBySpec(heroParam);}2.2. service
/*** <p>* 英雄信息表 服務類* </p>** @author gblfy* @since 2021-08-13*/ public interface HeroService extends IService<Hero> {/*** 查詢分頁數據,Specification模式** @author gblfy* @Date 2021-08-13*/LayuiPageInfo findPageBySpec(HeroParam param);}2.3. impl
@Service public class HeroServiceImpl extends ServiceImpl<HeroMapper, Hero> implements HeroService {@Autowiredprivate HeroMapper heroMapper;@Overridepublic LayuiPageInfo findPageBySpec(HeroParam param){Page pageContext = getPageContext();IPage page = heroMapper.customPageList(pageContext, param);return LayuiPageFactory.createPageInfo(page);}private Page getPageContext() {return LayuiPageFactory.defaultPage();}}2.4. mapper
@DS("oracle_1") public interface HeroMapper extends BaseMapper<Hero> {/*** 獲取分頁實體列表** @author gblfy* @Date 2021-08-13*/Page<HeroResult> customPageList(@Param("page") Page page, @Param("paramCondition") HeroParam paramCondition);}2.5. xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.gblfy.modular.order.mapper.HeroMapper"><!-- 通用查詢映射結果 --><resultMap id="BaseResultMap" type="com.gblfy.modular.order.entity.Hero"><id column="SNO" property="sno"/><result column="USER_NAME" property="userName"/><result column="AGE" property="age"/></resultMap><!-- 通用查詢結果列 --><sql id="Base_Column_List">SNOAS "sno", USER_NAME AS "userName", AGE AS "age"</sql><select id="customPageList" resultType="com.gblfy.modular.order.model.result.HeroResult"parameterType="com.gblfy.modular.order.model.request.HeroParam">select<include refid="Base_Column_List"/>from HERO where 1 = 1</select> </mapper>三、分頁失效解決方案
現象:改造完多數據源之后,分頁插件就失效了。
方案:重新加載分頁插件
- 分頁插件
MultiDataMyBatisPlusConfig
總結
以上是生活随笔為你收集整理的Guns 企业版多数据源配置集成dynamic-datasource的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小程序 获取腾讯地图计算两经纬度的实际距
- 下一篇: Centos/Red Hat7/8.x