1.conn 没关闭,可能不会自动提交而且也会造成连接不会释放
2.调用conn.commit()并关闭conn试试
3.当往sql server中插入数据的时候,identity会自动增加,如果没有提交的话,identity也不会回到原来的值的,所以很可能是没有提交的原因!按1,2试试

解决方案 »

  1.   

    楼上说的对,STRUTS中可以设置是自动提交还是非自动提交,如果没有在struts中设置,默认方式是非自动提交,必须显示调用一次conn.commit();
    可以在ACTION类中调用方法结束下面一段追加显示调用conn.commit()!在finally方法中进行把ps,rs,conn进行关闭!
      

  2.   

    首先非常感谢UPCCPU(CPU),根据你的第2个方法解决了问题。另外,我的conn是从action里传递过来的,关闭也放到action里了,因为我用struts配置的数据源。不过
    “在第一次建立与数据库的连接时,在缺省情况下,连接是在自动提交模式下的。为了获得更好的性能,可以通过调用带布尔值false参数的Connection类的setAutoCommit()方法关闭自动提交功能,如下所示: conn.setAutoCommit(false); 值得注意的是,一旦关闭了自动提交功能,我们就需要通过调用Connection类的commit()和rollback()方法来人工的方式对事务进行管理。”我在程序中没有设置conn.setAutoCommit(false); ,不应该是自动提交吗?
    +
      

  3.   

    哦, djpsunday(少壮且为风流事)说得,有道理!结贴,有收获!