(文/馒头)
本篇文章针对数据库操作类进行详细说明,Database控件是仿照iBatis.Net风格开发的一个ORM框架,里面吸收了几个从CodePlex上的开源代码,并在其基础上进行改进。而整个ORM框架则自定义的,直接封装了ADO.Net一些常用的方法,所以整个结构比较明了清晰,方便扩展开发和修改,应用起来更加得心应手。
本ORM架构对外提供的访问接口类为DataMapper:
1.参数传递:
目前只提供两种传递参数的形式,泛型<T>以及哈希表Hashtable。
2.数据返回类型:
(1) 泛型集合IList<T> (注:此处体现了ORM的所在)
(2)DataTable
(3)DataSet
(4)枚举IEnumerable<T> (注:此段代码得益于“老赵”的博文启发)
(5)自定义的内存记录集IDataReader (注:此段代码直接改自iBatis.Net)
(6)泛型实体类<T>
(7)Object (注:即ExecuteScalar()方法返回值)
(8)int (注:即 ExecuteNonQuery()方法返回值)
(9)JSON字符串 (注:方便Ajax开发,自定义的Ajax代码链接<自定义Ajax控件>)
以上九种返回类型中,其中,还有根据自定义的PageModel进行的分页数据读取。可更加快速地进行各种分页开发。此外,DataMapper也加入了事务机制,可以很方便地进行数据库事务操作。
下面为部分数据操作代码:
各種數據讀取方式測試(時間單位:毫秒):
点此返回:基于ORM的快速开发框架
本篇文章针对数据库操作类进行详细说明,Database控件是仿照iBatis.Net风格开发的一个ORM框架,里面吸收了几个从CodePlex上的开源代码,并在其基础上进行改进。而整个ORM框架则自定义的,直接封装了ADO.Net一些常用的方法,所以整个结构比较明了清晰,方便扩展开发和修改,应用起来更加得心应手。
本ORM架构对外提供的访问接口类为DataMapper:
1.参数传递:
目前只提供两种传递参数的形式,泛型<T>以及哈希表Hashtable。
2.数据返回类型:
(1) 泛型集合IList<T> (注:此处体现了ORM的所在)
(2)DataTable
(3)DataSet
(4)枚举IEnumerable<T> (注:此段代码得益于“老赵”的博文启发)
(5)自定义的内存记录集IDataReader (注:此段代码直接改自iBatis.Net)
(6)泛型实体类<T>
(7)Object (注:即ExecuteScalar()方法返回值)
(8)int (注:即 ExecuteNonQuery()方法返回值)
(9)JSON字符串 (注:方便Ajax开发,自定义的Ajax代码链接<自定义Ajax控件>)
以上九种返回类型中,其中,还有根据自定义的PageModel进行的分页数据读取。可更加快速地进行各种分页开发。此外,DataMapper也加入了事务机制,可以很方便地进行数据库事务操作。
下面为部分数据操作代码:
Hashtable ht = new Hashtable();
DataMapper dm = new DataMapper("user");
//泛型集合
IList<SysUser> list = dm.GetList<SysUserInfo>("SelectTop", ht);
//自定义的内存记录集
IDataReader dr = dm.GetDataReader("SelectTop", ht);
DataTable dt = dm.GetDataTable("SelectTop", ht);
DataTable dt = dm.GetDataTable("SelectTop", ht);
//输出Json字符串,与ajax结合使用
string jsonstr = dm.GetJson("SelectTop",ht);
dm.BeginTransaction();//开始事务
int i = dm.ExecuteObject("Insert", ht);
dm.Commit();//提交事务
//其他
DataMapper dm = new DataMapper("user");
//泛型集合
IList<SysUser> list = dm.GetList<SysUserInfo>("SelectTop", ht);
//自定义的内存记录集
IDataReader dr = dm.GetDataReader("SelectTop", ht);
DataTable dt = dm.GetDataTable("SelectTop", ht);
DataTable dt = dm.GetDataTable("SelectTop", ht);
//输出Json字符串,与ajax结合使用
string jsonstr = dm.GetJson("SelectTop",ht);
dm.BeginTransaction();//开始事务
int i = dm.ExecuteObject("Insert", ht);
dm.Commit();//提交事务
//其他
各種數據讀取方式測試(時間單位:毫秒):
Code
点此返回:基于ORM的快速开发框架
id 博主 = [[KILONET.CNBLOGS.COM alloc] initWithValue:@"天堂向右,我依然向左"
网名:@"老舟"
兴趣:@"影音,阅读"
动态:@"系统架构设计,Android通信模块开发"
网址:@"http://kilonet.cnblogs.com"
签名:@"--------------------------------------------------
Stay Hungry , Stay Foolish
求 知 若 渴,处 事 若 愚
--------------------------------------------------"
]; // Never Release