• 支持差异数据保存的数据库实体类设计——处女作


    面向对象开发过程中大家经常碰到的一个东东——数据实体。

    在实体对象实例的某一个信息被修改后,面临一个数据保存的问题,网上可以搜索到很多不同的保存方法,这里提供小虾(本人)曾经用过的几种常用方法:

    1. 根据需要,将修改过的属性组合成SQL语句(未修改的属性不作处理),然后执行数据库命令保存数据;
    2. 提前写好实体对象的SQL语句,如string sql = "UPDATE TableName SET ColumnName1 = {0}, ColumnName2 = {1}, ...  WHERE PK_ColumnName = {N}",然后将整个实体对象作为参数传入,将保存实体对象的SQL语句中的参数替换成相应的值,得到保存数据的SQL语句,然后调用数据库命令保存数据;
    3. 将实体对象实例中的每一个数据库字段属性成员的“属性名”和“属性值”通过反射的方法读取出来,然后拼接字符串,然后调用数据库命令来保存数据;
    4. ...(或许还有很多更加高效的数据库实体类,希望大家踊跃拍砖)。

    在这里,小虾分别说说每一种方法的优缺点。

                                   优点                                                                                  缺点

    第一种        1.支持差异数据保存,即只保存修改过的数据库字段;               1.需要写非常多的SQL语句。

                    2.由于是已经是编辑好的SQL语句,所以性能还可以。

    第二种        1.不支持差异数据保存;                                                  1.一个实体对象至少需要一个SQL语句,工作量也是很客观的。

                    2.执行效率也还可以。

    第三种        1.不支持差异数据保存。                                                  1.同样是由于反射操作,带来的性能影响也是比较大的。

                    2.由于是通过反射方式来拼接SQL语句,所以省掉了

                       很多写sql语句的工作量。

    如上三种方法都很难达到各位的需求,不知道是否更好的数据库实体设计方法,还是那句话,欢迎大家大胆拍砖!

    @追加内容

    哎,一个个只是支持,顶下什么的,悲惨啊!

    看来还得去baidu,google了。

    ASP.NET开发技术交流群: 67511751(人员招募中...)

  • 相关阅读:
    python 冒泡、二分查找
    pycharm 中按照文档引包方式,引包错误
    开发环境配置
    css,响应鼠标事件,文字变色
    Python 文档学习
    timestamp与timedelta,管理信息系统概念与基础
    中文词频统计
    文件方式实现完整的英文词频统计实例
    组合数据类型练习,英文词频统计实例上
    凯撒密码、GDP格式化输出、99乘法表
  • 原文地址:https://www.cnblogs.com/Juvy/p/2054535.html
Copyright © 2020-2023  润新知