CSFramework.DB 功能介绍
CSFramework.DB 功能介绍
目录
2.1 CSFramework.DB组成
CSFramework.DB由多数据库底层接口组件及实体对象数据框架构成,能满足开发企业级超大型软件系统的需求。
2.2 IDatabase核心接口体系架构
开发框架为用户提供多种数据库支持,目前已封装三种底层数据驱动,支持SqlServer、Oracle、MySql三种常用数据库。多数据库架构采用策略模式设计,定义IDatabase通用接口,并实现DatabaseMSSQL、DatabaseMySql、DatabaseOracle三个数据库操作类,在应用系统时引用这个类库文件:CSframework.DB.dll。
2.3 DbFramework体系架构
2.3.1 DbFramework简介
DbFramework是CSFramework.DB基于ADO.NET多数据库底层组件包封装的一个通用工具类,能根据对象实体模型(表结构映射ORM)自动提交数据,针对实体对象的Add、Delete、Update、Select操作,开发人员不需要编写任何SQL脚本。特点:支持批量对象操作。支持事务。支持MsSQL,MySQL,Oracle三种数据库。
2.3.2 DbFramework组成
1. DbFramework:CSFramework通用对象模型数据更新框架。
2. DbCommandGenerator: DbCommand命令生成器。
根据.NET对象模型(Type)类型自动生成三种DbCommand命令对象,支持MsSQL,MySQL,Oracle三种常用数据库。
3. DbFramework依赖CSFramework.DB的IDatabase接口。
2.3.3 DbFramework接口
DbFramework组件框架是基于CSFramework.DB核心库衍生出来的一个实体模型框架,用于提交实体模型数据,支持Add,Delete,Select 对象。
2.4 CSFramework.DB.dll几个核心类视图
2.4.1 IDatabase接口说明
IDatabase: 数据库核心接口,提供数据库连接以及数据操作相关方法,具体方法参考下图:
序号 | 名称 | 类型 | 参数 | 说明 |
1 | DefaultPort | 属性 |
| 默认端口 |
2 | CommandTimeout | 属性 |
| 命令超时 |
3 | ConnectionTimeout | 属性 |
| 连接时间 |
4 | DateTimeType | 属性 |
| 日期时间类型 |
5 | ToDbType | 方法 |
| 数据库类型转换为通用的System.Data.DbType |
6 | ToNetType | 方法 |
| MySQL数据库类型转换为通用的.NET对象类型(Type) |
7 | GetServerTime | 函数 |
| 创建获取服务器时间 |
8 | ConnectionString | 属性 |
| 连接字符串 |
9 | TransBegin | 方法 |
| 启动事务 |
10 | TransCommit | 方法 |
| 提交事务 |
11 | TransRollback | 方法 |
| 事务回滚 |
12 | GetDataSet | 函数 |
| 获取数据集 |
13 | GetDataSet | 函数 | Cmd:sql命令 | 获取数据集 |
14 | GetDataSet | 函数 | Text、type、paras: 文本、类型、段落 | 获取数据集 |
15 | GetTable | 函数 |
| 获取表 |
16 | GetTable | 函数 | Cmd:sql命令 | 获取表 |
17 | GetDataRow | 函数 |
| 获取数据行 |
18 | ExecuteSQL | 方法 |
| 执行SQL |
19 | ExecuteCommand | 方法 |
| 执行命令 |
20 | ExecuteScalar | 方法 | SQL: | 执行SQL,返回第1行第1列数据 |
21 | ExecuteScalar | 方法 | Cmd:sql命令 | 执行SQL,返回第1行第1列数据 |
22 | ExecuteReader | 方法 | SQL | 执行读卡器 |
23 | ExecuteReader | 方法 | Cmd:sql命令 | 执行读卡器 |
24 | ExecuteReader<T> | 方法 |
| 执行读卡器,支持泛型对象转换 |
25 | ExecuteReader<T> | 方法 |
| 执行读卡器,支持泛型对象转换 |
26 | ExecuteReader<T> | 方法 |
| 执行读卡器,支持泛型对象转换 |
27 | ExecuteReader<T> | 方法 |
| 执行读卡器,支持泛型对象转换 |
28 | ExecuteTrans | 方法 |
| 执行事务处理 |
29 | ExecuteTrans | 方法 |
| 执行事务处理 |
30 | Close | 方法 |
| 关闭连接 |
31 | DatabaseType | 属性 | 当前数据库类型 | SqlServer,Oracle, MySQL |
32 | GetTop | 函数 |
| SELECT TOP 通用方法 |
33 | ExecuteReaderList <T> | 方法 |
| 返回对象列表 |
34 | GetStringList <String> | 函数 |
| 返回指定字段的列表 |
35 | ParseParamName | 方法 |
| 拼接参数,如:@A, ?pA, :A |
2.4.2 IAdoFactory接口说明
IAdoFactory:ADO(ActiveX Data Object)ADO.NET活动数据对象工厂,创建ADO.NET核心组件的对象实例,如:DbConnection, DbCommand, DbParameter, DbDataAdapter等。
序号 | 名称 | 类型 | 参数 | 说明 |
1 | BuildConnectionString | 方法 |
| 创建SQL连接字符串 |
2 | CreateSqlProc | 方法 |
| 创建SQL存储过程 |
3 | CreateCommand | 方法 | commandText: SQL命令 | 创建命令 |
4 | ParamSymboName | 属性 |
| 参数符号,如@/:/? |
5 | CreateTimestampParameter | 方法 |
| 创建时间戳参数 |
6 | CreateConnection | 方法 |
| 创建连接 |
7 | CreateConnection | 方法 | connectionString:连接字符串 | 创建连接 |
8 | CreateCommand | 方法 | commandType:SQL命令 | 创建命令 |
9 | CreateParameter | 方法 |
| 创建参数 |
10 | CreateParameter | 方法 | Size,sourceColumn,parameterValue:大小、源列、参数值 | 创建参数 |
11 | CreateCommandBuilder | 方法 |
| 创建数据库SQL命令生成器 |
13 | CreateDataAdapter | 方法 | eventHandler:事件处理程序 | 创建数据适配器。 |
2.4.3 DatabaseFactory类说明
DatabaseFactory:数据库工厂,根据数据库类型创建数据库实例。
序号 | 名称 | 类型 | 参数 | 说明 |
1 | CommandTimeOut | 属性 |
| 命令超时定义 |
2 | ConnectionTimeOut | 属性 |
| 连接超时定义 |
3 | CreateMDB | 方法 |
| 创建数据库实例 |
4 | CreateSqlDatabase | 方法 |
| 创建SQL数据库 |
5 | CreateMySqlDatabase | 方法 |
| 创建MySQL数据库 |
6 | CreateOracleDatabase | 方法 |
| 创建Oracle数据库 |
7 | CreateDatabase | 方法 |
| 创建数据库 |
8 | CreateDatabase | 方法 |
| 创建数据库 |
9 | GetADOFactory | 方法 |
| ADO组件工厂 |
10 | SetTimeOut | 方法 |
| 更改连接字符串的超时时间 |
2.4.4 DatabaseMDB类说明
DatabaseMDB: 通用多数据库底层驱动(支持SqlServer,MySQL,Oracle三种数据库)。若使用DatabaseMDB类,需要参照以下部署才能使用:
1. 依赖app.config文件,需要配置数据库提供者。参考:CSFramework.DB的app.config文件。
2. 将app.config文件内容复制到应用程序的主配置文件,如web.config或app.config,因程序内使用AppSettings.Current["ConnectionTimeout"],以及加载Oracle,MySql,SqlServer三个底层驱动,
如:System.Data.SqlClient, Oracle.ManagedDataAccess.Client, MySql.Data.MySqlClient。
2.4.5 DataProviderFactory类说明
DataProviderFactory:数据提供者(DbProviderFactory)工厂类,用于加载基于.NET底层的数据库驱动,如:System.Data.SqlClient, Oracle.ManagedDataAccess.Client, MySql.Data.MySqlClient, System.Data.OracleClient。
序号 | 名称 | 类型 | 参数 | 说明 |
1 | Dictionary | 方法 |
| 字典 |
2 | Dictionary | 方法 |
| 字典 |
3 | DataProviderFactory | 方法 |
| 数据提供程序工厂 |
4 | GetProviderInvariantName | 方法 |
| 获取指定数据库类型对应的程序集名称 |
5 | GetFactory | 方法 |
| 从缓存获取指定类型的数据库对应的DbProviderFactory |
6 | CreateDbProviderFactory | 方法 |
| 加载指定数据库类型的DbProviderFactory |
需要在app.config文件内定义数据库底层驱动的参数。
2.4.6 CommandHelper类说明
序号 | 名称 | 类型 | 参数 | 说明 |
1 | _cmd | 成员 |
| DbCommand |
2 | _db | 成员 |
| IDatabase |
3 | _paramPrefix | 成员 |
| 参数前锥 |
4 | CommandHelper | 方法 |
| 构造器 |
5 | Command | 方法 |
| SqlCommand对象 |
6 | ClearParam | 方法 |
| 清除参数 |
7 | ParseParamName | 方法 |
| 返回包含参数符号的参数名称 |
8 | RemoveParam | 方法 |
| 删除参数 |
9 | AddParam | 方法 | dbType:数据库类型 | 增加参数 |
10 | AddParam | 方法 |
| 增加参数 |
11 | AddParam | 方法 |
| 增加参数 |
12 | AddParamOracleCursor | 方法 |
| 添加参数Oracle游标 |
13 | SetValue | 方法 |
| 给SqlCommand.Parameters赋值 |
14 | GetValue | 函数 |
| 获取参数的值 |
15 | GetParameter | 函数 |
| DbParameter |
16 | ParamPrefix | 属性 |
| 参数符号,如:@A, ?p_A, :A |
2.4.7 ParameterHelper类说明
序号 | 名称 | 类型 | 说明 |
1 | DbParameter | 方法 | 添加参数 |
2 | AddParameter | 方法 | 添加参数 |
2.4.8 DatabaseType枚举说明
DatabaseType:数据库类型,枚举类型。预设支持三种数据库。
2.4.9 DatabaseMSSQL类说明
DatabaseMSSQL:封装Microsoft SQL Server数据库常用操作方法。
2.4.10 DatabaseOracle类说明
DatabaseOracle:封装Oracle数据库常用操作方法。
接口方法参考DatabaseMSSQL。
2.4.11 DatabaseMySQL类说明
DatabaseMySQL:封装MySQL数据库常用操作方法。
接口方法参考DatabaseMSSQL。
2.5 debug文件说明
CSFramework.DB.dll:多数据库核心类库。
CSFramework.DB.dll.config:由app.config生成的配置文件。
CSFramework.DBTester.exe:测试程序。
MySql.Data.dll:MySql数据库第三方供应商提供的底层驱动组件。
Oracle.ManagedDataAccess.dll:Oracle数据库第三方供应商提供的底层驱动组件。
System.Data.OracleClient.dll:微软自带的Oracle数据库底层驱动。
2.6 VS解决方案
CSFramework.DB:多数据库核心工程项目。
CSFramework.DBSqlServer:为SqlServer数据库用户定制的类库(工程项目)。
CSFramework.DBTester:测试程序。