首页新闻找找看学习计划

关于代码生成工具生成 Dao层Update方法问题

0
悬赏园豆:50 [已解决问题] 解决于 2013-07-30 19:46

代码生成更新方法,update 是根据Id,然后全部字段都更新。

这样的话,我只要更新几个字段怎么办,那其它的字段不都要被更新为null或者0了

有没有好的解决办法?

不然自动生成的update 意义一点都没有!

大虾油焖油 好的办法!

< >
分享
最佳答案
0

举个粗俗的例子 比如你有个person类

Person p=new Person();

你需要对p的每个属性都赋值,然后 update(p);实际上的流程是先根据id获取person ,然后对person操作(比如更改字段之类) ,然后再update

收获园豆:30
死白的man | 老鸟四级 |园豆:2135 | 2013-07-30 15:53

嗯,看你这个评我有点明白了!

先取出所有值,然后再对你要更新的那几列赋值,这样就算是所有列都更新,也不会更新为null了

没有想到,呵呵!

斯普劳特【深圳】 | 园豆:24 (初学一级) | 2013-07-30 19:15
其他回答(2)
0

update  Person set PersonName=ISNULL(@PersonName,PersonName)

,PersonAge=ISNULL(@PersonAge,PersonAge) where id=@id

可以用ISNULL来判断传入值是不是为null,这样只要你不想更新的话就传个null值,他会用原来的值来替换

这样只需要给想要更新的属性赋一下值就可以了

收获园豆:5
野火烧不尽 | 园豆:225 (菜鸟二级) | 2013-07-30 16:25

假如我的这个属性是数字类型的呢!

所以还是死白的man 的可行!

支持(0) 反对(0) 斯普劳特【深圳】 | 园豆:24 (初学一级) | 2013-07-30 19:44
0

先获得这个对象再做更新操作吧。

收获园豆:15
````` | 园豆:14268 (专家六级) | 2013-07-30 17:39

嗯,是因该这样! 

支持(0) 反对(0) 斯普劳特【深圳】 | 园豆:24 (初学一级) | 2013-07-30 19:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册