@Override
public boolean delete(UserModel user) {
Connection conn = null;
try{
conn = DBconn.getConn();
String sql = "delete from soctt.tb1_user where id=?";

PreparedStatement pstmt = conn.prepareStatement(sql); 
pstmt.setString(1, user.getId());
System.out.println("Id1111111========"+user.getId());
pstmt.executeUpdate();
System.out.println("Id222222========"+user.getId());
pstmt.close();

}catch(Exception err){
err.fillInStackTrace();
}finally{
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return true;
}
这是我的代码,测试到pstmt.executeUpdate(); 这个语句不执行,删除不了数据JDBC没有问题,我的增加数据,显示数据

解决方案 »

  1.   

    看看userid是多少,是不是库里没有这个id的user
      

  2.   

    id数据库里有的,id是直接从list.jsp页面带到delete.jsp页面当中
      

  3.   

    不执行是什么意思? 是跳过了 还是执行了没有更新数据库?
    你显示的提交下 conn.commit();
      

  4.   

    是没有执行!
    pstmt.executeUpdate();后面的语句都没有执行包括System.out.println("Id222222========"+user.getId());
      

  5.   

    debug一下,是不是哪里有异常了
      

  6.   

    你自己可以先debug一下,看程序走到哪里报错,然后再找是什么原因
      

  7.   

    调试很重要 是纠错的重要手段之一
    PS:如果没猜错的话如果不是数据库连接有误就应该是user.getId()报异常了
      

  8.   

    其它地方都没错误,就是提交删除时,数据没有删除,测试后找到
    System.out.println("Id1111111========"+user.getId());
    pstmt.executeUpdate();
    System.out.println("Id222222========"+user.getId());这里出现问题,第一条输出在后台有,但第二条输出后台没有打印,判断应该是pstmt.executeUpdate();
    没有执行,数据库没有删除数据
      

  9.   

    不要看输出了,把你的程序debug一下,一步一步走,肯定哪里有问题的!
      

  10.   

    catch改成下面这样看看控制台报什么异常啊
    PS:调试好好学学 用print调试没觉得很麻烦么
    catch(Exception err){
    err.printStackTrace();
    }
      

  11.   

    pstmt.setString(1, user.getId());
    改成pstmt.setInt(1, user.getId());