按分工来说,这部分只起把数据从数据库中读取出来,到底用ORM还是用什么传输数据,那是另外一回事情了,
这部分的功能,从分层的角度来讲,只是数据库访问层的一个实用工具而已。
我们大家都希望自己的程序能健壮一些,写一遍后到处都能运行,当然没有太理想的完美万能的通用数据库访问方法吧,
就算有万能的,我还没见到过,嘿嘿。
以前我用
OleDb方式访问数据库,这样 Oracle和SqlServer上的写法大致是一致的,将程序移植到另一个数据库系统上
修改的量比较少,但是总感觉不是很爽,有时候希望用Oracle的数据库联接方式、有时候希望是SqlServer的数据库连接。
而且以前有些程序就写成了Oracle连接上,还要把这些程序都移植到新系统里来,总不能让别人翻天覆地的把程序都修改
了,我是没问题,但是别人不同意啊,当然还有性能上的问题等等。
IDbHelper 接口,里面定义了,经常用的数据库调用方法。
1.
获得数据库日期时间
2.
检查参数的安全性
3. Sql参数处理
4. 常用的数据库命令
5. 事务控制
6. 异步调用数据库
欢迎大家提出宝贵的改进意见
1
//------------------------------------------------------------
2
// All Rights Reserved , Copyright (C) 2008 , Jirisoft , Ltd.
3
//------------------------------------------------------------
4
5
using System;
6
using System.Data;
7
using System.Data.Common;
8
9
namespace Jirisoft.Common.DbUtilities
10

{
11
using Jirisoft.Common;
12
13
/**//// <summary>
14
/// IBaseDbConnection
15
/// 数据库访问通用类标准接口。
16
///
17
/// 修改纪录
18
///
19
/// 2008.06.03 版本:1.2 JiRiGaLa 增加 DbParameter[] myDbParameters 方法。
20
/// 2008.05.07 版本:1.1 JiRiGaLa 增加GetWhereString定义。
21
/// 2008.03.20 版本:1.0 JiRiGaLa 创建标准接口,这次应该算是一次飞跃。
22
///
23
/// 版本:1.1
24
///
25
/// <author>
26
/// <name>JiRiGaLa</name>
27
/// <date>2008.03.20</date>
28
/// </author>
29
/// </summary>
30
public interface IDbHelper
31
{
32
String GetDBNow()#region String GetDBNow()
33
/**//// <summary>
34
/// 获得数据库日期时间
35
/// </summary>
36
/// <returns>日期时间</returns>
37
String GetDBNow();
38
#endregion
39
40
DateTime GetDBDateTime()#region DateTime GetDBDateTime()
41
/**//// <summary>
42
/// 获得数据库日期时间
43
/// </summary>
44
/// <returns>日期时间</returns>
45
DateTime GetDBDateTime();
46
#endregion
47
48
bool InTransaction#region bool InTransaction
49
/**//// <summary>
50
/// 是否已采用接口
51
/// </summary>
52
/// <returns></returns>
53
bool InTransaction
54
{
55
get;
56
set;
57
}
58
#endregion
59
60
IDbConnection GetDbConnection()#region IDbConnection GetDbConnection()
61
/**//// <summary>
62
/// 获取数据库连接
63
/// </summary>
64
/// <returns>数据库连接</returns>
65
IDbConnection GetDbConnection();
66
#endregion
67
68
IDbTransaction GetDbTransaction()#region IDbTransaction GetDbTransaction()
69
/**//// <summary>
70
/// 获取数据源上执行的事务
71
/// </summary>
72
/// <returns>数据源上执行的事务</returns>
73
IDbTransaction GetDbTransaction();
74
#endregion
75
76
IDbCommand GetDbCommand()#region IDbCommand GetDbCommand()
77
/**//// <summary>
78
/// 获取数据源上命令
79
/// </summary>
80
/// <returns>数据源上命令</returns>
81
IDbCommand GetDbCommand();
82
#endregion
83
84
85
IDbConnection Open()#region IDbConnection Open()
86
/**//// <summary>
87
/// 这时主要的获取数据库连接的方法
88
/// </summary>
89
/// <returns>数据库连接</returns>
90
IDbConnection Open();
91
#endregion
92
93
IDbConnection Open(String connectionString)#region IDbConnection Open(String connectionString)
94
/**//// <summary>
95
/// 获得新的数据库连接
96
/// </summary>
97
/// <param name="connectionString">数据库连接字符串</param>
98
/// <returns>数据库连接</returns>
99
IDbConnection Open(String connectionString);
100
#endregion
101
102
bool TestConn(String dataBaseType, String dataBase, String userName, String password, String workstation, bool trustLink)#region bool TestConn(String dataBaseType, String dataBase, String userName, String password, String workstation, bool trustLink)
103
/**//// <summary>
104
/// 测试数据库连接是否成功,这里抛出异常进行加强,充分使用系统的异常功能。
105
/// </summary>
106
/// <param name="dataBaseType">数据库类别</param>
107
/// <param name="dataBase">数据库名称</param>
108
/// <param name="userName">用户名</param>
109
/// <param name="password">密码</param>
110
/// <param name="workstation">服务器名称</param>
111
/// <param name="trustLink">是否信任的连接</param>
112
/// <returns>是否连接成功</returns>
113
bool TestConn(DataBaseType dataBaseType, String dataBase, String userName, String password, String workstation, bool trustLink);
114
#endregion
115
116
String SqlSafe(String value)#region String SqlSafe(String value)
117
/**//// <summary>
118
/// 检查参数的安全性
119
/// </summary>
120
/// <param name="value">参数</param>
121
/// <returns>安全的参数</returns>
122
String SqlSafe(String value);
123
#endregion
124
125
DbParameter GetParameter(String targetFiled, Object targetValue)#region DbParameter GetParameter(String targetFiled, Object targetValue)
126
/**//// <summary>
127
/// 获取参数
128
/// </summary>
129
/// <param name="targetFiled">目标字段</param>
130
/// <param name="targetValue">值</param>
131
/// <returns>参数</returns>
132
DbParameter GetParameter(String targetFiled, Object myTargetValue);
133
#endregion
134
135
DbParameter[] GetParameters(String[] targetFileds, Object[] targetValues)#region DbParameter[] GetParameters(String[] targetFileds, Object[] targetValues)
136
/**//// <summary>
137
/// 获取参数
138
/// </summary>
139
/// <param name="targetFiled">目标字段</param>
140
/// <param name="targetValue">值</param>
141
/// <returns>参数集</returns>
142
DbParameter[] GetParameters(String[] targetFileds, Object[] myTargetValues);
143
#endregion
144
145
void AddParameter(IDbCommand myTargetDbCommand, String targetFiled, Object targetValue)#region void AddParameter(IDbCommand myTargetDbCommand, String targetFiled, Object targetValue)
146
/**//// <summary>
147
/// 添加参数
148
/// </summary>
149
/// <param name="myTargetDbCommand">数据库命令</param>
150
/// <param name="targetFiled">目标字段</param>
151
/// <param name="targetValue">值</param>
152
void AddParameter(IDbCommand myTargetDbCommand, String targetFiled, Object myTargetValue);
153
#endregion
154
155
String GetWhereString(String[] names, ref Object[] values, String relation)#region String GetWhereString(String[] names, ref Object[] values, String relation)
156
/**//// <summary>
157
/// 获得条件语句
158
/// </summary>
159
/// <param name="names">字段名</param>
160
/// <param name="values">字段值</param>
161
/// <param name="relation">逻辑关系</param>
162
/// <returns>字符串</returns>
163
String GetWhereString(String[] names, ref Object[] values, String relation);
164
#endregion
165
166
String GetParameter(String parameter)#region String GetParameter(String parameter)
167
/**//// <summary>
168
/// 获得参数Sql表达式
169
/// </summary>
170
/// <param name="parameter">参数名称</param>
171
/// <returns>字符串</returns>
172
String GetParameter(String parameter);
173
#endregion
174
175
String PlusSign()#region String PlusSign()
176
/**//// <summary>
177
/// 字符串相加符号
178
/// </summary>
179
/// <returns>字符加</returns>
180
String PlusSign();
181
#endregion
182
183
184
IDataReader ExecuteReader(String sqlQuery)#region IDataReader ExecuteReader(String sqlQuery)
185
/**/