2015-02-03 3 views
0

판매자가 새 항목, 새 범주 및 항목을 삽입 할 수있는 양식을 만들려고합니다. 이제 DELETE에 문제가 있습니다. 이것은 내 코드이며 누군가가 문제를 해결하는 방법을 알고 있다면 도와주세요.JDBC를 사용하여 데이터베이스에서 데이터를 삭제하는 방법

String id = "42"; 

    try 
     { 
      Class.forName("com.mysql.jdbc.Driver"); 
      Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/projekat","root",""); 

      PreparedStatement prepared_statement = connection.prepareStatement("DELETE FROM artikli WHERE id= ? ;"); 
      prepared_statement.setString(1, id); 
      int result_set = prepared_statement.executeUpdate(); 
      if (result_set > 0) 
      { 
       System.out.println("Deleted"); 
      } 
      else 
      { 
       System.out.println("Can't delete"); 
      } 
} catch (Exception ex) { 
    System.out.println(ex); 
} 
+6

무엇이 문제입니까? – azurefrog

+3

문제가 있다는 것을 말하는 대신 문제가 무엇인지 설명하십시오. – Jesper

+0

모르겠다. 항상 다른 결과를 얻는다. 삭제할 수 없습니다. 그리고 MySQL 데이터베이스 항목에 여전히 있습니다. – BrotherSrbin

답변

0

이 시도 : 코드에서

String id = request.getParameter("id"); 

     try 
      { 
       Class.forName("com.mysql.jdbc.Driver"); 
       Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/projekat","root",""); 
       PreparedStatement prepared_statement = null; 

       String strQuery = "DELETE FROM artikli WHERE id= ?"; 
       prepared_statement = connection.prepareStatement(strQuery); 
       prepared_statement.setString(1, id); 
       int result_set = prepared_statement.executeUpdate(); 

       if (result_set > 0) 
       { 
        // System.out.println(result_set);      
        response.sendRedirect("Prodaja2.jsp"); 
       } 
       else 
       { 
        // System.out.println(result_set); 
        response.sendRedirect("Prodaja2.jsp?error=Can'tDelete"); 
       } 
    } catch (Exception ex) { 
     out.print(ex); 
    } finally { 
     try { 
      stmtProd.close(); 
      connection.close(); 
     } catch (Exception ex) { 
      System.out.println(ex.getMessage()); 
     } 
    } 
} 


protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    doGet(request, response); 
} 

에게 질의 한 후 세미콜론을 충돌 할 수있다. 또한 리소스 누출로 이어질 수 있고 사용자가 로그 아웃하더라도 연결이 활성 상태로 남아있을 수 있으므로 finally 블록에서 연결을 닫는 것을 잊지 마십시오.

+0

이것을 사용해보십시오 *** 왜? *** 단순한 코드는 답이 아닙니다. 당신은 * 설명해야하고, * 설명은 코드 없이도 충분합니다. – EJP

+0

@ EJP ... 이미 내 대답의 맨 끝에 설명을 추가했습니다. – Leo

0

한 오류가 있습니다, 그 ID의 값을 확인, 당신의 구문에

변경 코드

PreparedStatement prepared_statement = connection.prepareStatement("DELETE FROM artikli WHERE id= ? ;"); 

다른 오류가없는 경우

PreparedStatement prepared_statement = connection.prepareStatement("DELETE FROM artikli WHERE id= ?"); 

하는 것입니다, 여기에 null 값의 기회.

+0

전에 해봤지만 해결책이 아닙니다. 하지만 도와 줘서 고마워. – BrotherSrbin

관련 문제