zoukankan      html  css  js  c++  java
  • 利用反射+自定义特性实现简单ORM(二),“无SQL”的数据库增删改查

    d上一次写了简单的实现,还是基于写SQL的情况下,这次可以实现基本的单表的简单条件的(复杂条件构想中)数据增删改查,通过特性标识来完成实体与数据表的映射。
    有朋友上次提出多表间的关系映射,暂时还是通过(多实体类-视图)的映射实现,虽然写起来可能会麻烦些,不过应该也符合面向对象嘛!

    代码:
    实体插入:
    Code

    使用相应实体类需要三个特性:
    [DataTbName("People")] 表名,类唯一
    [DataField("Name",IsPrimaryKey=true)] 字段,主键可以加上IsPrimaryKey不参与Insert
    [DataInsert()] 参加Insert操作的字段必须添加此特性
    例:
    Code

    使用示例:

    People people = new People();
                people.PName 
    = "杨春来";
                people.PSex 
    = "";
                people.PAge 
    = 21;
                ExecuteEntity.InsertEntity
    <People>(people);
    实体删除操作,主要就是跟据主键了,多条件的正在想一个好的解决方案,例:
    Code

    实体类需要两个特性:
    [DataTbName("People")] 标识表名
    [DataField("Name",IsPrimaryKey=true)] 字段名和一个主键,根据主键删除
    使用示例:
    People people=new People();
                people.SysNo
    =sysNo;
    ExecuteEntity.DeleteEntity
    <People>(people);

    更新一个实体:
    Code

    需要特性:
    [DataTbName("People")] 表名
    [DataField("Name",IsPrimaryKey=true)] 字段名和一个主键
    [DataUpdate()] 参与更新的字段必须实现此特性

    例:
    Code

    使用示例:
    Code


    大至就是这样,还未完。实现更灵活的主法。
    PS:有很多人说反射性能很差很差,这个先保留意见下!
  • 相关阅读:
    JavaScript验证长度
    createTextRange用法
    keyPress keyUp keyDown 联系与区别
    获取text、select、radio、checkbox的值
    深入浅出JavaScript (五) 详解Document.write()方法
    深入浅出JQuery (三) 图片预览效果
    BS部分整体学习
    深入浅出JQuery (二) 选择器
    深入浅出jQuery (五) 如何自定义UIDialog?
    深入浅出 JQuery (一) 浅析JQuery
  • 原文地址:https://www.cnblogs.com/assion/p/1531694.html
Copyright © 2011-2022 走看看