2011-04-18 51 views
0
org.apache.jasper.JasperException: An exception occurred processing JSP page /customerDelete.jsp at line 39 

java.lang.NullPointerException 
sun.jdbc.odbc.JdbcOdbcPreparedStatement.clearParameter(Unknown Source) 

我想爲什麼我一直得到這個空指針未知的源錯誤?

 //get parameters from the request 
     String firstName=request.getParameter("first_Name"); 
     String lastName=request.getParameter("last_Name");  


preparedStatement = conn.prepareStatement("DELETE FROM customer " 
              + " WHERE customer.first_Name= " +firstName 
        + " AND customer.last_Name= " +lastName); 

preparedStatement.setString(1, firstName); // line 39 
preparedStatement.setString(2, lastName); 

preparedStatement.executeUpdate(); 

SQL表

  CREATE TABLE customer 
    (cust_ID  NUMBER   NOT NULL, 
    sale_ID    NUMBER   NOT NULL, 
    first_Name  VARCHAR2(30)  NOT NULL, 
    mI   VARCHAR2(2)   , 
    last_Name  VARCHAR2(50)  NOT NULL, 
    street_Name  VARCHAR2(50)  , 
    city   VARCHAR2(30)  NOT NULL, 
    state   VARCHAR2(50)  NOT NULL, 
    zip_Code  VARCHAR2(5)  NOT NULL, 
    DOB   DATE   , 
    agent_ID  NUMBER    , 
    home_Phone  VARCHAR2(12)  UNIQUE,   
    cell_Phone  VARCHAR2(12)  UNIQUE, 
    profession  VARCHAR2(30)   , 
    employer  VARCHAR2(30)   , 
    referrer  VARCHAR2(30)    
    );  
+0

這是一個完整的DELETE語句嗎?你指的是last_Name,但它似乎也打算使用first_Name。 – Adam 2011-04-18 01:17:11

回答

5

在prepareStatement使用的語法像這樣

delete from customer where customer.last_Name= ? and customer.first_Name= ? 

定義查詢的參數。 之後,您可以將參數設置爲prepareStatement。 NPE發生的原因是您嘗試設置sql語句的缺少參數。

+1

+1 @Vik:Yup,你準備好的語句是硬編碼的SQL語句。你需要在一個或另一個之間進行選擇。 – bguiz 2011-04-18 04:24:26

+0

謝謝你們。那樣做了! – Mike 2011-04-19 19:22:18

相關問題