Java 为什么我总是得到这个空指针未知源错误?
我正在努力Java 为什么我总是得到这个空指针未知源错误?,java,jdbc,sqlplus,Java,Jdbc,Sqlplus,我正在努力 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) SQL表 //get parameters from
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)
SQL表
//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();
firstName很可能为null。firstName很可能为null。在prepareStatement中使用如下语法
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)
);
定义查询的参数。
之后,可以将参数设置为prepareStatement。出现NPE是因为您试图设置sql语句缺少的参数。在prepareStatement中,请使用如下语法
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)
);
定义查询的参数。
之后,可以将参数设置为prepareStatement。出现NPE是因为您试图设置sql语句缺少的参数。这是完整的DELETE语句吗?您指的是姓氏,但似乎您也打算使用姓氏。这是完整的DELETE语句吗?您指的是姓氏,但似乎您也打算使用姓氏。+1@Vik:Yup,OP您准备的语句是硬编码的SQL语句。您需要在其中一个或另一个之间进行选择。+1@Vik:Yup,OP您准备的语句是硬编码的SQL语句。你需要在两者之间做出选择。