动态数据源
动态数据源功能允许用户在运行时动态添加、修改和删除数据库连接信息,从而实现对多个数据库的访问和操作。通过动态数据源,用户可以根据业务需求灵活地管理和切换数据库连接,提高系统的扩展性和灵活性。
动态数据源配置
打开动态数据源菜单
e7ddac7c-95aa-4950-94ec-fda32e3cb57b
点击新增按钮,填写动态数据源信息
微信图片_2025-11-23_224918_532
填写完毕,点击测试连接按钮,测试连接是否成功
点击确定按钮,保存动态数据源信息,列表可以看到新增的数据源记录。
修改动态数据源
打开动态数据源菜单
点击需要修改的动态数据源,进入修改页面
修改动态数据源信息
点击测试连接按钮,测试连接是否成功
点击确定按钮,保存动态数据源信息
删除动态数据源
打开动态数据源菜单
点击需要删除的动态数据源,进入删除页面
点击删除按钮,删除动态数据源
使用动态数据源
代码里面使用动态数据源
var db=provider.GetConnection("Test").Result;
var data=db.Ado.SqlQuery<dynamic>("select * from mlt_sys_dynamic_datasource");
var data=db.Ado.SqlQuery<dynamic>("select * from mlt_sys_dynamic_datasource");
注入动态数据源提供程序
复制代码
public class DynamicDataSourceController : ControllerBase
{
private readonly IDynamicDataSourceService _dynamicDataSourceService;
private readonly IDbProvider _dbProvider;
public DynamicDataSourceController(IDynamicDataSourceService dynamicDataSourceService, IDbProvider dbProvider)
{
_dynamicDataSourceService = dynamicDataSourceService;
_dbProvider = dbProvider;
}
public void Test(){
var db=provider.GetConnection("Test").Result;
var data=db.Ado.SqlQuery<dynamic>("select * from mlt_sys_dynamic_datasource");
// 数据库操作
}
}
复制代码
在低代码平台使用动态数据源 如图所示,在低代码平台使用动态数据源
微信图片_2025-11-23_225943_544
复制代码
using System;
using System.Threading.Tasks;
using Newtonsoft.Json;
using System;
using JESAI.Core.Aspects;
using JESAI.Platform.Domain.Admin.Repositories;
using Jesai.DynamicDataSource.Sqlsugar.DynamicDatasources;
public class Program
{
public string Handle(string param){
//查询数据库
var provider = ServiceLocator.Instance.GetService<IDbProvider>();
var db=provider.GetConnection("Test").Result;
var data=db.Ado.SqlQuery<dynamic>("select * from mlt_sys_dynamic_datasource");
// 创建包含多个匿名对象的数组
var tableData = new[]
{
new { Id = 1, TableName = "用户表", TableCode = "user", TableDesc = "用户信息表", IsValid = 1, CreateTime = "2023-10-01 12:00:00" },
new { Id = 2, TableName = "订单表", TableCode = "order", TableDesc = "订单信息表", IsValid = 1, CreateTime = "2023-10-02 12:00:00" },
new { Id = 3, TableName = "产品表", TableCode = "product", TableDesc = "产品信息表", IsValid = 0, CreateTime = "2023-10-03 12:00:00" }
};
var result=new {ErrorCode="000000",Message="操作成功!",CurrentPage=1,Total=3,Data=new {tableData=tableData,DBData=data}};
var str=JsonConvert.SerializeObject(result);
return str;
}
public static async Task Main()
{
var p= new Program();
var result=p.Handle(null);
Console.WriteLine(result);
}
}
复制代码
注意事项
- 动态数据源数据库链接目前是明文,可以自行修改为加密字符串,否组可能出现裸奔。