为啥我不断收到此空指针未知来源错误?
Posted
技术标签:
【中文标题】为啥我不断收到此空指针未知来源错误?【英文标题】:Why do I keep getting this null pointer unknown source error?为什么我不断收到此空指针未知来源错误? 【发布时间】:2011-04-18 01:11:41 【问题描述】: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)
);
【问题讨论】:
这是一个完整的 DELETE 语句吗?您指的是 last_Name,但您似乎也打算使用 first_Name。 【参考方案1】:在 prepareStatement 中使用这样的语法
delete from customer where customer.last_Name= ? and customer.first_Name= ?
定义查询参数。 之后,您可以将参数设置为prepareStatement。 NPE 发生是因为您试图设置缺少的 sql 语句参数。
【讨论】:
+1 @Vik:是的,你准备好的语句是硬编码的 SQL 语句。您需要在其中一个或另一个之间进行选择。【参考方案2】:很可能,firstName 为空。
【讨论】:
以上是关于为啥我不断收到此空指针未知来源错误?的主要内容,如果未能解决你的问题,请参考以下文章