Wildfish框架实现原理之数据层
2006-02-11 11:56
267 查看
数据层的功能主要是封装一些列的数据类型等定义和表之间的关系。
1。DataSet封装
优点:用于做CRUD的DataSet都可以通过工具生成,其实封装的信息不外乎是MainKey AddtionalKey等信息
定义:
每一个数据表一般都有一个PrimaryKey,
对于单一的表,PrimaryKey=MainKey
对于多表,主表的PrimaryKey=MainKey ,从表的PrimaryKey=MainKey+AddtionalKey
原理:
正常单表就不用说,只需要设定MainKey信息即可
主从表,需要设定从表的AddtionalKey
由于使用的不是DataSet的信息,所以,我们把这些信息存入了DataColumn.ExtendProperity里面
缺点:
每次都需要用DataRow来操作,不能达到较好的类型校验。
成批更新/删除的时候,对每一个更新/删除行都必须执行一次SQL来完成,比较消耗时间。
2.UpdateObject/DeleteObject
顾名思义,这是一个Update/Delete对象,他用来制定一个表能够更新/删除的数据,还可以增加固定的条件和可变的条件。
我们构造了这样的对象就是为成批更新/删除为存在的,UpdateObject/DeleteObject提交的时候只会生成一个SQL
3。Entity
存在的理由:
用DataRow操作不方便,不能尽早的做类型和数据正确性校验。
BaseDataSet有一个GetEntity SetEntity CreateEntity的方法,用于依据DataTable生成对应的简单实体。
每一个实体可以看成一个行。
这样我们就可以用 OrderEntity entity=orderDataSet.OrderDataTable.CreateEntity();
entity.OrderID="xxxxxx";
.........................
orderDataSet.OrderDataTable.SetEntity(entity);
比起DataRow来说,算是很方便了。
而且对于主表的实体,DataSet全部获取了数据后,主表的实体还用有从表实体的集合。
for(int i=0;i<orderEntity.OrderItemEntities.Count;i++)
{
OrderItemEntity itemEntity=orderEntity.OrderItemEntities[i];
//do something
}
1。DataSet封装
优点:用于做CRUD的DataSet都可以通过工具生成,其实封装的信息不外乎是MainKey AddtionalKey等信息
定义:
每一个数据表一般都有一个PrimaryKey,
对于单一的表,PrimaryKey=MainKey
对于多表,主表的PrimaryKey=MainKey ,从表的PrimaryKey=MainKey+AddtionalKey
原理:
正常单表就不用说,只需要设定MainKey信息即可
主从表,需要设定从表的AddtionalKey
由于使用的不是DataSet的信息,所以,我们把这些信息存入了DataColumn.ExtendProperity里面
缺点:
每次都需要用DataRow来操作,不能达到较好的类型校验。
成批更新/删除的时候,对每一个更新/删除行都必须执行一次SQL来完成,比较消耗时间。
2.UpdateObject/DeleteObject
顾名思义,这是一个Update/Delete对象,他用来制定一个表能够更新/删除的数据,还可以增加固定的条件和可变的条件。
我们构造了这样的对象就是为成批更新/删除为存在的,UpdateObject/DeleteObject提交的时候只会生成一个SQL
3。Entity
存在的理由:
用DataRow操作不方便,不能尽早的做类型和数据正确性校验。
BaseDataSet有一个GetEntity SetEntity CreateEntity的方法,用于依据DataTable生成对应的简单实体。
每一个实体可以看成一个行。
这样我们就可以用 OrderEntity entity=orderDataSet.OrderDataTable.CreateEntity();
entity.OrderID="xxxxxx";
.........................
orderDataSet.OrderDataTable.SetEntity(entity);
比起DataRow来说,算是很方便了。
而且对于主表的实体,DataSet全部获取了数据后,主表的实体还用有从表实体的集合。
for(int i=0;i<orderEntity.OrderItemEntities.Count;i++)
{
OrderItemEntity itemEntity=orderEntity.OrderItemEntities[i];
//do something
}
相关文章推荐
- Wildfish框架的实现原理之系统工具篇
- 框架数据观测实现原理
- RPC框架原理及从零实现系列文章(四):支持zookeeper注册中心与负载均衡
- Struts 框架的基本概念及实现MVC模式的原理
- 网站统计中的数据收集原理及实现
- Spring3.1.0实现原理分析(三).配置数据
- Spring实现原理分析(二十五).Spring Boot如何把application.*中的配置数据转换成对象
- 数据访问组件&ORM测试框架(1)——EF方案实现
- 网站统计中的数据收集原理及实现
- Hibernate框架ORM的实现原理
- php基于Fleaphp框架实现cvs数据导入MySQL的方法
- pulltorefresh框架实现刚进入界面就开始上拉加载数据
- 为什么绝大部分框架不实现双向数据绑定
- struts2:数据校验,通过XWork校验框架实现(validation.xml)
- 数据挖掘笔记-关联规则-Apriori-原理与简单实现
- 浅析php如何实现爬取数据原理
- 网站统计中的数据收集原理及实现
- hibernate框架ORM的实现原理
- paip.提升效率--数据绑定到table原理和流程Angular js jquery实现
- 一亿数据获取前100个最大值(利用quicksort的原理实现)