现在,我对库里的每一个表都写了自己对映的一个类,传说中的model(比如有一个表叫City好了,对映的类是CityInfo)1 现在疑问是,大家一般会在CityDal中写几个Update方法?
  理论上来说写一个就好了,然后进行全字段的更新,但会不会因字段过多而影响效率呢?2 其次如果根据不同的业务分别写成N个不同的update方法,每一个方法只更新特定的几个字段,这样我估计我会写一大堆这样的方
  法的,这样是不是无形之中加重了数据层的负担。3 我自己觉得最理想的方法是在select的同时出保存一个副本,然后在update之前对比更改的后的cityInfo与之前备分的cityinfo来,来决定哪里字段需要更新,哪些则不需要,动态地创建update语句。但是感觉这样会比较麻烦。4 直接在update之前进行一下select 从而知道哪些字段有更新,哪些没有。但不知道先select再update效率和直接update哪个高了。为了不麻烦在这里就不考虑数据更新同步的情况了我没什么项目经验,对于这一块都是自学的,所以不知道具体项目中大家是怎么应用的。还有我以前听说过update 的机制都是先delete 然后再insert的,所以我感觉所有的update所有的字段应该是和update一个字段是一样的效率,不知道对不对谢谢大家了
 

解决方案 »

  1.   

    可以用HashTable把每个字段都缓存在内存中,取的时候直接用它的hashid。这时候你就可以在代码中进行判断了,代码执行判断总比数据库执行修改快吧。你说你的表和数据库中的表是有映射关系的,不知道是不是用特性来做的,这样对于查询,添加很有用,很方便智能,我没试过修改,但是我想修改也能通过这样的方法进行比较方便智能的修改。
      

  2.   

    我没有这样写哦,
    我现在想知道大家在DAL中是写几个update方法(更新不同的几个字段,用一个SQL语句),还是就写一个update方法,即使只更新一个字段,也把所有字段给更新了
      

  3.   

    没办法,多写几个更新存储过程或是判断参数是否为null
      

  4.   

    1 现在疑问是,大家一般会在CityDal中写几个Update方法? 
      理论上来说写一个就好了,然后进行全字段的更新,但会不会因字段过多而影响效率呢? 
    只写一个方法就够了.如果不修改字段为什么要去更新的..你的UPDATE的语句那里需要优化.你可以去判断实体信息生成插入语句和插入的参数.2 其次如果根据不同的业务分别写成N个不同的update方法,每一个方法只更新特定的几个字段,这样我估计我会写一大堆这样的方 
      法的,这样是不是无形之中加重了数据层的负担。 
    只有一个方法就够了.3 我自己觉得最理想的方法是在select的同时出保存一个副本,然后在update之前对比更改的后的cityInfo与之前备分的cityinfo来,来决定哪里字段需要更新,哪些则不需要,动态地创建update语句。但是感觉这样会比较麻烦。 
    这样是最简单的方法...你认为去更新N个UPDATE方法好还是 1个UPDATE方法好?4 直接在update之前进行一下select 从而知道哪些字段有更新,哪些没有。但不知道先select再update效率和直接update哪个高了。 
    直接UpDate高... Select在Update里做还是具体在构造MODEL的时候就做..这个要看继续系统的需求了为了不麻烦在这里就不考虑数据更新同步的情况了 
      

  5.   

      传个model就行了,一个更新方法