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采取第一种方法?难道是因为它所包含的实体

的属性都比较少?而且做更新操作频率较低?

另外也想听听你的看法。