当前位置: 代码迷 >> Java Web开发 >> executeUpdate()更新就卡住了,该怎么处理
  详细解决方案

executeUpdate()更新就卡住了,该怎么处理

热度:628   发布时间:2016-04-15 22:43:06.0
executeUpdate()更新就卡住了

public void validateid(String thename,String theid)
{
ResultSet rs = null;//rs接收的是数据库返回的结果
PreparedStatement psmt = null;
PreparedStatement psmt2 = null;
String sSql = "select cname from newsalary where identify=?";
String sSql2 ="update newsalary set message =? where identify =?";//定义sql语句
try {
psmt = connDB1.getConn().prepareStatement(sSql);
psmt.setString(1, theid);
rs  = psmt.executeQuery();
while (rs != null && rs.next())
{
//System.out.println(rs.getString("cname"));
//实例化vo
psmt2 = connDB1.getConn().prepareStatement(sSql2);
if(rs.getString("cname").equals(thename))
{
psmt2.setString(1, "success!");
psmt2.setString(2, theid);
}
else
{
psmt2.setString(1, "name not match!");
psmt2.setString(2, theid);
}
psmt2.executeUpdate();
}
} catch (Exception e) 
{
e.printStackTrace();
}finally
{
connDB1.commitConn();
connDB1.closeConn();
}
}

我想更新一张表,前面调试都没问题,到了psmt2.executeUpdate();这儿就卡住了,数据库也没更新。但是我把update的SQL语句复制到数据库执行就可以更新,不知道是那儿写错了,求助大神
------解决思路----------------------
从你的代码上看可能是你的事务没有提交,你在第一个查询的时候connDB1.getConn();获取了一个连接
在第二个更新的时候又connDB1.getConn()获取了一个连接,你这两个连接是同一个吗。
如果不是你下面finally中的connDB1.commitConn();connDB1.closeConn();这里提交和释放的连接又是哪一个。