当前位置: 技术问答>java相关
互斥访问的问题?
来源: 互联网 发布时间:2015-07-18
本文导语: 我做了一个数据修改页面,先输入一个数据,然后根据数据从数据库中取出相应记录。修改后,再存入数据库。每一条记录有一个STATUS字段又来显示该记录是否正在修改。记录是互斥访问的。 我先将数据从数据库...
我做了一个数据修改页面,先输入一个数据,然后根据数据从数据库中取出相应记录。修改后,再存入数据库。每一条记录有一个STATUS字段又来显示该记录是否正在修改。记录是互斥访问的。
我先将数据从数据库中取出,将STATUS字段设置成NO,修改完毕后,再将其设置成YES。问题是如果用户在数据修改到一半时关闭了该网页,可是数据库中的字段却还是NO,请教大家该如何解决这个问题?
我先将数据从数据库中取出,将STATUS字段设置成NO,修改完毕后,再将其设置成YES。问题是如果用户在数据修改到一半时关闭了该网页,可是数据库中的字段却还是NO,请教大家该如何解决这个问题?
|
0.Add timestamp column to the table.
1.when you enter the page,save the time in the hidden textbox.
2.when you upate the table,check the column timestamp by the time textbox of page:
if timestamp > time
message:other people have change the record.
OK?????????????
1.when you enter the page,save the time in the hidden textbox.
2.when you upate the table,check the column timestamp by the time textbox of page:
if timestamp > time
message:other people have change the record.
OK?????????????
|
0.在表中增加一列时间型的列来记录最新更新时刻。(timestamp型)
1。在页面打开时,用隐藏文本框记下些时数据库的现在时刻。
2。更新之前,取出更新行的timestamp与页面隐藏文本框保存的时刻比较:
如果更新行的timestamp在页面时刻之后,说明其它用户已经更新了这条记录,提示“其它用户已经更新”,重新刷新页面,显示最新记录
我们项目就是这样做的,很好!
当有多条同时更新时,你还可以记录该查询条件下的记录条数,更新时先比较记录条数,如果不同,说明有其它用在相同条件下作删除,增加!
条数相同时,再比较时间。
OK?????????????????????
1。在页面打开时,用隐藏文本框记下些时数据库的现在时刻。
2。更新之前,取出更新行的timestamp与页面隐藏文本框保存的时刻比较:
如果更新行的timestamp在页面时刻之后,说明其它用户已经更新了这条记录,提示“其它用户已经更新”,重新刷新页面,显示最新记录
我们项目就是这样做的,很好!
当有多条同时更新时,你还可以记录该查询条件下的记录条数,更新时先比较记录条数,如果不同,说明有其它用在相同条件下作删除,增加!
条数相同时,再比较时间。
OK?????????????????????
|
STATUS字段------>timestamp型
|
在数据库连接关闭的时候,把所有的status都改成yes不就行了
|
将两个数据库操作设置为事务管理不就可以了嘛,!