zoukankan      html  css  js  c++  java
  • Wildfish框架实现原理之数据层

    数据层的功能主要是封装一些列的数据类型等定义和表之间的关系。
    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
             }  
              

  • 相关阅读:
    Java 流程控制语句 之 顺序结构
    CSS 滑动门案例
    CSS 精灵技术(sprite)
    【剑指Offer-代码的鲁棒性】编程题23:链表中环的入口节点
    【剑指Offer-代码的鲁棒性】面试题22:链表中倒数第k个节点
    【剑指Offer-代码的完整性】面试题21:调整数组顺序使奇数位于偶数前面
    【剑指Offer-代码的完整性】面试题20:表示数值的字符串
    【剑指Offer-代码的完整性】面试题19:正则表达式匹配
    【剑指Offer-代码的完整性】面试题16:数值的整数次方
    【剑指Offer-位运算】面试题15:二进制中1的个数
  • 原文地址:https://www.cnblogs.com/wildfish/p/328805.html
Copyright © 2011-2022 走看看