文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>支持差异数据保存的数据库实体类设计——处女作

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

时间:2011-05-23  来源:Juvy

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

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

  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语句的工作量。

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

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载