我想知道是什么操作引起的这个问题。如果Java代码
conn = ds.getConnection();
conn.setAutoCommit(false);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
stmt.addBatch(sql1);
stmt.addBatch(sql);
stmt.executeBatch();
没有commit()会不会引起被锁定的问题。PS.连得是服务器的数据库,用户权限非管理员,所以在解锁的时候直接alter kill 会提示没有权限

解决方案 »

  1.   

    你没有commit的时候数据会一直被锁定,别人再操作的时候就会提示record is locked by another user
      

  2.   

    怎么解呢,登录数据库的用户不是管理员权限,用
    alter system kill session 'SESSION_ID,serial#'; 
    会提示无权限
      

  3.   

    还有,如果setAutoCommit(true);就不会出现这种情况了吧
      

  4.   

    1.setAutoCommit(true)是自动提交事务不需要你手动commit,至于用不用这个要看你的实际业务对事务的需要
    2.你可以用commit或rollback来解锁
      

  5.   

    conn.setAutoCommit(false);需要手动提交或回滚。