若依前后端分离版本配置多个数据库并使用
详情请参考若依官方文档
1、ruoyi-admin模块
在application-druid.yml配置从库数据源
-
# 数据源配置
-
spring:
-
datasource:
-
type: com.alibaba.druid.pool.DruidDataSource
-
driverClassName: com.mysql.cj.jdbc.Driver
-
druid:
-
# 主库数据源
-
master:
-
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT+8
-
username: root
-
password: root
-
# 从库数据源
-
slave:
-
# 从数据源开关/默认关闭
-
enabled: true
-
url:jdbc:mysql://localhost:3306/ms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT+8
-
username: root
-
password: root
2、ruoyi-common模块
在enums文件夹的DataSourceType类中添加数据源枚举
-
public enum DataSourceType
-
{
-
/**
-
* 主库 对应库名ry-vue
-
*/
-
MASTER,
-
-
/**
-
* 从库 对应库名ms
-
*/
-
SLAVE
-
}
3、ruoyi-framework模块
在config文件夹的DruidConfig配置读取数据源
-
/**
-
* 从库 对应yml中的数据源slave ms数据库
-
* @param druidProperties
-
* @return
-
*/
-
-
-
-
public DataSource slaveDataSource(DruidProperties druidProperties)
-
{
-
DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
-
return druidProperties.dataSource(dataSource);
-
}
在DruidConfig类dataSource方法添加数据源
setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource");
4、在需要使用多数据源方法或类上添加@DataSource注解,其中value用来表示数据源
-
-
public List<SysUser> selectUserList(SysUser user)
-
{
-
return userMapper.selectUserList(user);
-
}
-
-
-
public class SysUserServiceImpl
5、手动切换数据源
在需要切换数据源的方法中使用DynamicDataSourceContextHolder类实现手动切换,使用方法如下
-
public List<SysUser> selectUserList(SysUser user)
-
{
-
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.SLAVE.name());
-
List<SysUser> userList = userMapper.selectUserList(user);
-
DynamicDataSourceContextHolder.clearDataSourceType();
-
return userList;
-
}
二、使用多数据源 ruoyi-generator生成代码模块
在controller文件夹下的GenController控制器上 新增一个DataSource注解,指定当前控制器所有操作 都走指定的数据源SLAVE :后续生成哪个数据源的代码 只要指定对应的数据源就行,不指定 则默认主库
-
-
-
-
public class GenController extends BaseController
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggfjac
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13