banq,请教一个问题

02-12-18 vic
jive里面不论是关于user信息的修改,还是关于message的信息的修改
只要是执行了setXX方法,就去做update db的操作。
例如:
User.setPasswordHash(String passwordHash);
User.setEmail(String email);
都执行了saveToDb()方法,如果用户的属性很多,那么在修改用户的信息
时候,效率岂不是很低?

我通常做法是把用一个UserData存储用户信息,
然后使用 updateUser(UserData userData)来修改用户信息

我的方法和jive的唯一区别是,执行完setXX方法后,需要
执行updateUser方法

谈谈您的看法,3x

banq
2002-12-18 12:50
我目前没看出区别,两者都可以。

vic
2002-12-18 14:28
例如修改用户信息时:

1. jive的做法
String newEmail = request.getParameter(....
String newAge = ..
String newSex = ..
//more property

User userToUpd = xxx.getUser(userId);
userToUpd.setEmail(newEmail); //1
userToUpd.setSex(newSex); //2
userToUpd.setSex(newSex); //3
//more setXX(..); //多次数据库操作

2.我通常的做法
String newEmail = request.getParameter(....
String newAge = ..
String newSex = ..
//more property

UserData userDataToUpd = xxx.getUserData(userId);
userDataToUpd.setEmail(newEmail);
userDataToUpd.setSex(newSex);
userDataToUpd.setSex(newSex);
//more setXX(..);
xxx.updUser(userDataToUpd); //只需要执行一次数据库操作

我想问,为什么jive采取第一种方法?难道是因为它所包含的实体
的属性都比较少?而且做更新操作频率较低?
另外也想听听你的看法。

猜你喜欢