Select t.*,t.Rowid From table_name t For update Nowait 这个方法比较简单,如果网络终断,或当前用户机死了,会死锁的。最好不要这样做

解决方案 »

  1.   

    to:  ChDw(米) 如果网络中断或者死机等,数据库会在一段时间后判定超时的。--------------------------------------------------------------
    是指自动释放锁吗?
    这个时间是多少,怎么设定和查看
      

  2.   

    数据库连接池啊,只有在修改的时候才真正到后台数据库进行操作,JAVA这部分封装的相当不错
      

  3.   

    可能我没描述清楚
    我打个比方:
    一个用户打开了页面,从数据库里取出一条数据显示在页面上
    然后在页面上修改数据(用了10分钟),然后点击保存按钮执行update操作,操作完!我要求是在这10分钟里这条数据都是被锁定的,是被这个用户独占的,别的用户不能访问
      

  4.   

    1. 把这个connection放到session中
    2. 更改开始使用事务, 把需要改的东西全锁了
    3. 更改完了提交
    4. 更改失败或网络超市, 在session退出的地方释放连接, 并且回滚事务
    5. 其他用户读数据使用commit_read的隔离方式, 并且设定读超时.
      

  5.   

    很简单啊 增加一个判断字段,进入修改页面就设置为1,修改提交就设置为0同时增加一个判断session 如果session超时了 就将1重新变为0
      

  6.   

    楼上每次执行的时候要2句Update?
      

  7.   

    to: zqpsswh(似水无痕)
    同时增加一个判断session 如果session超时了 就将1重新变为0---------------------------------------------------------
    客户端断电了,谁去判断session呀,不是很懂,能不能说的清楚一点
      

  8.   

    对于oracle来说,用存储过程来实现锁是一个比较好的办法, 存储过程一开始就默认share锁了,你放心用好了