2017-03-17 33 views
0

我是netbeans的初學者。在我的代碼中,insert命令正在工作。但更新,刪除和搜索命令不起作用。如何在netbeans中編寫更新,刪除和搜索代碼

這是我的html表單。

Patients.html

<html> 
<head> 

    <title>Patients</title> 
</head> 
<body> 
    <h1><font color="1B407F">Patient Details</font></h1> 
    <form method="GET" action="Patients.jsp"> 
     ID Number&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type="text" name="pid"><br><br> 
     Name&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type="text" name="pname"><br><br> 
     Mobile Number&nbsp<input type="text" name="pmobile"><br><br> 
     Disease&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type="text" name="pdisease"><br><br> 

     <input type="submit" name="btn" value="ADD">&nbsp&nbsp&nbsp 
     <input type="submit" name="btn" value="SEARCH">&nbsp&nbsp&nbsp 
     <input type="submit" name="btn" value="UPDATE">&nbsp&nbsp&nbsp 
     <input type="submit" name="btn" value="DELETE"> 

    </form> 
</body> 

這裏是JSP文件。

Patients.jsp

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>Patients</title> 
</head> 
<body> 
    <%@ page import="java.sql.*" %> 
    <% 
     try 
     { 
      Connection c; 
      Statement s; 
      ResultSet rs; 

      String id=request.getParameter("pid"); 
      String name=request.getParameter("pname"); 
      String mobile=request.getParameter("pmobile"); 
      String disease=request.getParameter("pdisease"); 
      String btnvalue=request.getParameter("btn"); 

      Class.forName("com.mysql.jdbc.Driver"); 
      String path="jdbc:mysql://localhost/hospital"; 
      c=DriverManager.getConnection(path,"root",""); 
      s=c.createStatement(); 

      if(btnvalue.equals("ADD")) 
      { 
      s.executeUpdate("insert into patients(P_NIC,P_Name,P_Mobile,Disease) values('"+id+"','"+name+"','"+mobile+"','"+disease+"')"); 
      } 

      else if(btnvalue.equals("SEARCH")) 
      { 
      rs=s.executeQuery("select * from patients where P_NIC='"+id+"'"); 
      while(rs.next()) 
      { 
       String i=rs.getString(1); 
       String n=rs.getString(2); 
       int m=rs.getInt(3); 
       String d=rs.getString(4); 

       System.out.print(i+n+m+d); 

      } 
      } 
      else if(btnvalue.equals("UPDATE")) 
        { 
        s.executeUpdate("update patients set P_Mobile='"+mobile+"' where P_NIC="+id+""); 
        } 
      else if(btnvalue.equals("DELETE")) 
      { 
       s.executeUpdate("Delete from patients where P_NIC="+id+""); 
      } 
     } 
     catch(ClassNotFoundException e) 
     { 
      System.out.println(e.getMessage()); 
     } 
     catch(SQLException r) 
     { 
      { System.out.println(r.getMessage());} 
     } 


     %> 
</body> 

The MySQL table patients contain 4 varchar fields such as P_NIC, P_Name, P_Mobile and Disease. 

請幫我找出問題。謝謝。

回答

0

包含收到的錯誤。這將幫助其他人找出真正的問題。

最好的方法是使用Servlets。檢查這tutorial

Logger.getLogger(SERVLETNAME.class.getName()).log(Level.SEVERE, null, ex); 

使用此代碼來捕獲和記錄您的錯誤。

SERVLETNAME是你Servletclass和前名是異常

聲明是不安全的變量名,而不是一個好的做法用PreparedStament 更多JDBC