比如:用户小明信息如下:{id:1, userName: ‘小明’, phone:'110'},小强的信息{id:2, userName:'小强', phone:'120'}
controller 方法如下
@Controller
public class UserController {
@Autowried
private UserService userService;
@RequestMapping("/update")
public String update(User u) {
userService.update(u);
...
}
}
sql语句如下
update user set
userName=#{userName},
phone=#{phone}
where id=#{id}
修改页面如下:
<form>
<input type=“hidden” name="id" value=1 />
<input type="text" name="userName" />
<input type="text" name="phone" />
<button type="submit" value="保存" />
</form>
在提交修改信息之前,故意修改隐藏的id,那么这样不就改了其他人的信息了吗?
----
我自己想了一个办法:
每条记录加一个字段 create_by 创建人
在controller的update方法的中,获取当前用户id,并赋给user对象的createBy属性
...
user.setCreateBy(currentUser.getId());
...
sql改为
...
update user
set userName=#{userName},
phone=#{phone}
where id=#{id}
<if test="createBy != null and createBy != 0>
and create_by=#{createBy}
</if>
...
----
但是感觉这种方法不是很完美。
请教大神,有没有更好的解决方案呢?来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4635/viewspace-3142811/ ,如需转载,请注明出处,否则将追究法律责任。