以前用developer新增或修改的时候很容易死锁。那时我是用一个中间表来表示当前已有人是否使用,但问题是所有相关的操作你都要有很好的控制,要不然,很容易使某个表在该中间表中一直处于被使用状态!提个想法,希望对你有帮助。

解决方案 »

  1.   

    写个象全局变量的javabean来表示谁在使用和其ip和nick,当操作完成或失败是把与该表对应的变量的值置为未使用。可以解决程序未正常退出!这样是否会比较容易实现点!
      

  2.   

    单机独立程序就像xmvigour(微电) 所说用中间表。
    对于c/s或b/s应用,可以做一个唯一实例的对象,管理这张表的数据库操作,结合加锁就可以啦。
      

  3.   

    sql server提供表锁定,纪录锁定,页锁定
      

  4.   

     ycats(加菲猫) 说的有道理,但是每个表都建立一个唯一实例的对象,工作量有点大。嗨,
    我觉得resultset应该增加个方法可以来控制是否要表锁定,纪录锁定,页锁定?
      

  5.   

    好象java中有,就是看看数据库支持不。
      

  6.   

    在使用sql的更新语句时,数据库是不是会自动锁住这个表
      

  7.   

    hz129,你能否说得明白点
    kingSunSha(弱水三千),我说了,只是在我对此表操作的时候别人就不能操作了,只此而已
      

  8.   

    我知道用事务了,
    反正我DELPHI是这么做的,
    你可以试一下,在事务开始,
    但没提交时,
    连数据库都不能打开的
      

  9.   

    你的意思是别人不能更新数据库吧..
    你可以用SQL来锁定表的.
    如:
    select * from tablename for update;
      

  10.   

    select * from tablename for update;   oracle中没这条语句吧?
      

  11.   

    可以在table加上一个field,用来控制table的使用。你用的时候,把它设成某个数,
    别人就不能使用拉!不知道行不?
      

  12.   

    TO:xmvigour(微电)
    Oracle里当然有了.
      

  13.   

    Connection conn;
    ......
    conn.setAutoCommit(false);
    ......//所有你想作为一个事务处理的数据库操作
    conn.commit();
    conn.setAutoCommit(true);
    ......//后继操作至于什么是事务处理,还是找本数据库方面的书看看更好。
    我想你所要达到的目的,用事务能就能解决了,当然也要看你所使用的数据库是否支持事务处理。