你没有Commit(),
在pstmt.executeUpdate();后加上:
con.commit();

解决方案 »

  1.   

    個人見解
    1. session 如失效會出現死鎖
    2. finally 有時不一定會執行
      

  2.   

    to  judyhui7612():
    能说的在具体点吗?
      

  3.   

    autocommit是true会出错么?
    别用false的试试
      

  4.   

    你就执行一句SQL,没必要搞commit,让connection直接自动执行一句commit一下好了。
    另外死锁的时候是否有异常发生?还是正常执行就死锁了。
      

  5.   

    先锁定(select * from t_news where id = ? for update)再更新试试!
      

  6.   

    你在所有语句执行之前就加上con.setAutoCommit(true);不要等它执行完了再来commit。还有你再这个方法上加一个synchronized使它同步,看看同步以后会不会出现这样的情况。
      

  7.   

    我以前就是设置con.setAutoCommit(true),让它自动提交,可因为要死锁,就改成现在这个样子了。另外说明,死锁是不定时的,访问量在300左右。
      

  8.   

    会不会是表中字段太长,在SELECT的时候时间过长,多用户时造成死锁,因为表中有一个字段是long varchar型的,DB2数据库。