DAL层连接多数据库跨服务器进行数据交互对接|C/S开发框架

DAL(Data Access Layer)
DAL是数据访问层的英文缩写,即为数据访问层(Data Access Layer)。其功能主要是负责数据库的访问,简单地说就是实现对数据表的Select(查询)、Insert(插入)、Update(更新)、Delete(删除)等操作。
对于企业级大型软件系统,数据访问层承载更多的数据逻辑处理的工作,比如操作多个数据库,或者跨服务器进行数据交互,数据对接等。
CSFramework.DB组件
CSFramework.DB组件针对多个数据库操作,或者跨服务器数据交互与对接提供强大的技术支持,封装大量底层常用接口与方法,在实际应用中调用方法与接口就能实现。
本文针对DAL层连接多数据库,跨服务器进行数据操作方面提供客户实例,供大家参考。
DatabaseProvider
DatabaseProvider,既数据库提供者(DAL层应用)。DatabaseProvider的主要职责是初始化数据库连接,以及提供一组通用方法创建IDatabase实例。
C# 全选
/// <summary>
/// 数据库提供者(DAL层应用)
/// </summary>
public static class DatabaseProvider
{
//连接字符串列表 <key,connectionString>
private static Dictionary<string, string> _ConnectionString = new Dictionary<string, string>();
//活动数据库列表 <key,IDatabase>
private static Dictionary<string, IDatabase> _ActivedDBs = new Dictionary<string, IDatabase>();
//静态构造器
static DatabaseProvider()
{
InitConnection(Globals.IsTestMode);
}
public static void InitConnection(bool isTest)
{
_ConnectionString.Clear();
//系统数据库,需要建立数据库
_ConnectionString["MiniSystem"] = "Server=121.79.28.39;Database=CSFramework_Mini;User ID=test;Password=123456.";
//其他数据库
_ConnectionString["GTDB8120"] = "Server=121.79.28.39;Database=GTDB8;User ID=test;Password=123456.";
_ConnectionString["C_bei120"] = "Server=121.79.28.39;Database=C_bei;User ID=test;Password=123456.";
_ConnectionString["gSales"] = "Server=121.79.28.39;Database=gSales;User ID=test;Password=123456.";
_ConnectionString["C_bei110"] = "Server=121.79.28.39;Database=C_bei110;User ID=test;Password=qifan123456.";
}
/// <summary>
/// 获取活动状态的数据库
/// </summary>
/// <param name="DBID">账套编号</param>
/// <returns></returns>
public static IDatabase GetDatabase(DBIDs DBID)
{
//使用缓存的IDatabase实例
if (!_ActivedDBs.ContainsKey(DBID.ToString()))
{
IDatabase db = DatabaseFactory.CreateSqlDatabase(_ConnectionString[DBID.ToString()]);//OK
_ActivedDBs.Add(DBID.ToString(), db);
}
return _ActivedDBs[DBID.ToString()];
}
}DBIDs
DBID,Database ID的简称,数据库编号。DBIDs是个枚举类型,定义企业级系统需要连接的数据库编号。
参考:
C# 全选
public enum DBIDs
{
/// <summary>
/// MiniSystem作为系统库
/// </summary>
MiniSystem,
/// <summary>
/// 其他数据库、账套数据库
/// </summary>
GTDB8120,
/// <summary>
/// 其他数据库、账套数据库
/// </summary>
C_bei120,
/// <summary>
/// 其他数据库、账套数据库
/// </summary>
gSales,
/// <summary>
/// ERP数据库、其他数据库、账套数据库
/// </summary>
C_bei110
}DAL层创建多个IDatabase实例
C# 全选
/// <summary>
/// 同步数据方法
/// </summary>
/// <returns></returns>
internal int SyncData()
{
//创建不同数据库的实例
IDatabase db_MsSQL = DatabaseProvider.GetDatabase(DBIDs.GTDB8120);//MsSQL数据库
IDatabase db_Oracle = DatabaseProvider.GetDatabase(DBIDs.C_bei110);//Oracle数据库
IDatabase db_MySQL = DatabaseProvider.GetDatabase(DBIDs.GTDB8120);//MySQL数据库
//获取不同数据库服务器的数据
var d1 = db_MsSQL.GetTable("SELECT * FROM dt_Customer WHERE FlagSync=0");
var d2 = db_Oracle.GetTable("SELECT * FROM DT_CUSTOMER WHERE FlagSync=0");//oracle
var d3 = db_MySQL.GetTable("SELECT * FROM dt_Customer WHERE FlagSync=0");
//
//数据处理, 省略。。。
//
//操作MySQL数据库
var cmd1 = db_MySQL.CreateCommand("");
db_MySQL.ExecuteCommand(cmd1.Command);
//操作Oracle数据库
var cmd2 = db_Oracle.CreateCommand("");
db_Oracle.ExecuteCommand(cmd2.Command);
return 0;
}

参考文档:
开发数据访问层DAL | MiniFramework蝇量框架 | Winform框架|C/S开发框架
C/S快速开发框架旗舰版V5.1 | dalBase与IDatabase关系|软件手册
C/S快速开发框架 | 旗舰版V5.1 | DAL继承关系与IDatabase关系|软件手册
C/S开发框架教程:使用基础资料(数据字典)的DAL层更新主从表(或多表)数据
C/S开发框架DAL层提交数据报错"外键值为空!"解决方案。
Winform开发框架测试程序之DALFactory类测试|C/S框架网
CS系统快速开发框架 - 生成BLL和DAL
C#.Net C/S结构开发框架中数据访问层(DAL)的作用
C#.Net快速开发框架 - ORM ,BLL,DAL三者关系
C/S开发框架标准版-后台数据更新dalBase类(UML图及方法介绍)
CSFrameworkV6旗舰版开发框架 | 集成软件授权认证系统|C/S开发框架
CS软件授权注册系统|WebApi服务器介绍|C/S开发框架
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
C/S客户端软件授权设计方案 | MAC地址白名单+软件到期时间授权|C/S开发框架
C/S客户端软件授权设计方案 | 在线用户并发数+软件到期时间授权|C/S开发框架
CSFrameworkV6旗舰版开发框架 | 集成软件授权认证系统|C/S开发框架
开发数据访问层DAL | MiniFramework蝇量框架 | Winform框架|C/S开发框架
C/S快速开发框架旗舰版V5.1 | dalBase与IDatabase关系|软件手册
C/S快速开发框架 | 旗舰版V5.1 | DAL继承关系与IDatabase关系|软件手册
C/S开发框架教程:使用基础资料(数据字典)的DAL层更新主从表(或多表)数据
C/S开发框架DAL层提交数据报错"外键值为空!"解决方案。
Winform开发框架测试程序之DALFactory类测试|C/S框架网
CS系统快速开发框架 - 生成BLL和DAL
C#.Net C/S结构开发框架中数据访问层(DAL)的作用
C#.Net快速开发框架 - ORM ,BLL,DAL三者关系
C/S开发框架标准版-后台数据更新dalBase类(UML图及方法介绍)
CSFrameworkV6旗舰版开发框架 | 集成软件授权认证系统|C/S开发框架
CS软件授权注册系统|WebApi服务器介绍|C/S开发框架
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
C/S客户端软件授权设计方案 | MAC地址白名单+软件到期时间授权|C/S开发框架
C/S客户端软件授权设计方案 | 在线用户并发数+软件到期时间授权|C/S开发框架
CSFrameworkV6旗舰版开发框架 | 集成软件授权认证系统|C/S开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
