refactor: 移除多数据源
This commit is contained in:
@@ -1,41 +0,0 @@
|
|||||||
package com.youlai.system.sample;
|
|
||||||
|
|
||||||
import cn.hutool.core.util.RandomUtil;
|
|
||||||
import com.youlai.system.pojo.entity.SysDictType;
|
|
||||||
import com.youlai.system.service.SysDictService;
|
|
||||||
import com.youlai.system.service.SysDictTypeService;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 动态数据源案例
|
|
||||||
*
|
|
||||||
* @author haoxr
|
|
||||||
* @date 2023/4/24
|
|
||||||
*/
|
|
||||||
@Component
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
public class DynamicDataSourceSample {
|
|
||||||
|
|
||||||
private final SysDictTypeService dictTypeService;
|
|
||||||
|
|
||||||
private final SysDictService dictService;
|
|
||||||
|
|
||||||
|
|
||||||
@Transactional
|
|
||||||
public boolean updateMaster(Long dictTypeId,String newTypeCode) {
|
|
||||||
|
|
||||||
SysDictType dictType = dictTypeService.getById(dictTypeId);
|
|
||||||
String originalTypeCode = dictType.getCode();
|
|
||||||
dictType.setCode(newTypeCode);
|
|
||||||
boolean result = dictTypeService.updateById(dictType);
|
|
||||||
|
|
||||||
if (result) {
|
|
||||||
result = dictService.updateSlave(originalTypeCode, newTypeCode);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -66,12 +66,4 @@ public interface SysDictService extends IService<SysDict> {
|
|||||||
*/
|
*/
|
||||||
List<Option> listDictOptions(String typeCode);
|
List<Option> listDictOptions(String typeCode);
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改字典类型编码
|
|
||||||
*
|
|
||||||
* @param originalTypeCode
|
|
||||||
* @param newTypeCode
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
boolean updateSlave(String originalTypeCode, String newTypeCode);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,9 +3,7 @@ package com.youlai.system.service.impl;
|
|||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.youlai.system.converter.DictConverter;
|
import com.youlai.system.converter.DictConverter;
|
||||||
@@ -160,24 +158,6 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
return options;
|
return options;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改字典类型编码(多数据源测试)
|
|
||||||
*
|
|
||||||
* @param originalTypeCode
|
|
||||||
* @param newTypeCode
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@DS("slave")
|
|
||||||
@Override
|
|
||||||
public boolean updateSlave(String originalTypeCode, String newTypeCode) {
|
|
||||||
boolean result = this.update(new LambdaUpdateWrapper<SysDict>()
|
|
||||||
.eq(SysDict::getTypeCode, originalTypeCode)
|
|
||||||
.set(SysDict::getTypeCode, newTypeCode)
|
|
||||||
);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package com.youlai.system.service.impl;
|
|||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
|||||||
@@ -3,25 +3,11 @@ server:
|
|||||||
|
|
||||||
spring:
|
spring:
|
||||||
datasource:
|
datasource:
|
||||||
# 动态切换数据源
|
type: com.alibaba.druid.pool.DruidDataSource
|
||||||
dynamic:
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
# 默认库,默认master
|
url: jdbc:mysql://www.youlai.tech:3306/youlai_boot?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&allowMultiQueries=true
|
||||||
primary: master
|
username: youlai
|
||||||
# 是否严格模式,默认false;严格模式下未匹配到数据源直接报错, 非严格模式下则使用默认数据源primary所设置的数据源
|
password: 123456
|
||||||
strict: false
|
|
||||||
datasource:
|
|
||||||
master:
|
|
||||||
type: com.alibaba.druid.pool.DruidDataSource
|
|
||||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
|
||||||
url: jdbc:mysql://www.youlai.tech:3306/youlai_boot?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&allowMultiQueries=true
|
|
||||||
username: youlai
|
|
||||||
password: 123456
|
|
||||||
slave:
|
|
||||||
type: com.alibaba.druid.pool.DruidDataSource
|
|
||||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
|
||||||
url: jdbc:mysql://www.youlai.tech:3306/youlai_boot_slave?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&allowMultiQueries=true
|
|
||||||
username: youlai
|
|
||||||
password: 123456
|
|
||||||
data:
|
data:
|
||||||
redis:
|
redis:
|
||||||
database: 6
|
database: 6
|
||||||
|
|||||||
@@ -2,7 +2,4 @@ spring:
|
|||||||
application:
|
application:
|
||||||
name: youlai-boot
|
name: youlai-boot
|
||||||
profiles:
|
profiles:
|
||||||
active: dev
|
active: dev
|
||||||
mvc:
|
|
||||||
path-match:
|
|
||||||
matching-strategy: ant_path_matcher
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
package com.youlai.system;
|
|
||||||
|
|
||||||
import cn.hutool.core.util.RandomUtil;
|
|
||||||
import com.youlai.system.sample.DynamicDataSourceSample;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
|
||||||
|
|
||||||
@SpringBootTest
|
|
||||||
@Slf4j
|
|
||||||
class DynamicDataSourceTest {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private DynamicDataSourceSample dynamicDataSourceSample;
|
|
||||||
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testDynamicDataSourceWithTransactional() {
|
|
||||||
String newTypeCod = RandomUtil.randomString(RandomUtil.BASE_CHAR, 6).toUpperCase();
|
|
||||||
boolean result = dynamicDataSourceSample.updateMaster(2L, newTypeCod);
|
|
||||||
log.info("testDynamicDataSourceWithTransactional result:{}", result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user