使用jsp和servlet删除函数

时间:2013-10-07 12:49:42

标签: java database jsp servlets

嗨,有人可以帮我弄清楚我的愚蠢错误在哪里。 我试图在互联网上找到但无法找到最佳解决方案。我有一个jsp和java控制器,我应该能够从数据库中删除一条记录,以下是我的代码。任何帮助都将得到承认

public void doDel(HttpServletRequest request, HttpServletResponse response) throws ClassNotFoundException, InstantiationException, IllegalAccessException{

        try {
                HttpSession session = request.getSession(true);
                messageBean mbean = new messageBean();
               int id = mbean.getMesId();
               String sql;
               sql = "DELETE * from message where id =?";
               Class.forName(driver).newInstance();
                conn = DriverManager.getConnection(url);
                st = conn.createStatement();
                ps = conn.prepareStatement(sql);
                ps.setInt(1, id);
                ps.executeUpdate();
                conn.commit();
                conn.close();

3 个答案:

答案 0 :(得分:1)

*之后应该没有delete,它只是delete from

答案 1 :(得分:1)

将您的查询更改为

sql = "DELETE from message where id =?";

或以其他方式使用statement查询

sql = "DELETE from message where id ="+id;
Statement st = conn.createStatement();
stmt.executeQuery(sql);

Reference使用Statement

进行删除查询

答案 2 :(得分:0)

有几点需要注意:

  1. st = conn.createStatement();不需要。因为您已经在使用PreparedStatement。
  2. sql = "DELETE * from message where id =?";这可以写成:

    sql = "DELETE from message where id =?"; //无需*

  3. 只有在设置conn.commit();

    时才需要
  4. conn.setAutoCommit(false);

    您必须提供错误/ Stacktrace才能获得有用的答案。