【发布时间】:2011-11-20 23:32:06
【问题描述】:
我创建了一个 login.jsp 页面...在此页面提交按钮底部添加新用户链接。如果我单击该链接,它会打开新的用户注册表单。我已经在 oracle 中创建了表,如果我提供要存储在数据库中的数据,但它指示空指针异常.....来自 newuser_db.java 的第 92 行我的数据库连接编码在 newuser_db.java 中。请帮我......
错误:第 92 行是 stmt1 = con.prepareStatement("insert into userdetails values(ka1.nextval,?,?,?,?,?,?,?,23,'as','14-nov-87')");
设计:
完整代码:
package com.sla;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class newuser_db
*/
public class newuser_db extends HttpServlet {
private static final long serialVersionUID = 1L;
PreparedStatement stmt=null;
Connection con =null;
ResultSet rs=null;
/**
* @see HttpServlet#HttpServlet()
*/
public newuser_db() {
super();
// TODO Auto-generated constructor stub
}
@Override
public void init() throws ServletException {
// TODO Auto-generated method stub
super.init();
try
{
Class.forName("sun.Jdbc.Odbc.JdbcOdbcDriver");
}
catch (ClassNotFoundException ex)
{
ex.printStackTrace();
}
try
{
con =DriverManager.getConnection("Jdbc:odbc:servletdb","system","balaji");
}
catch(SQLException ex)
{
ex.printStackTrace();
}
// TODO Auto-generated method stub
}
@Override
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
// TODO Auto-generated method stub
super.service(arg0, arg1);
PrintWriter out=arg1.getWriter();
String s1=arg0.getParameter("USERID");
String s2=arg0.getParameter("FIRSTNAME");
String s3=arg0.getParameter("LASTNAME");
String s4=arg0.getParameter("EMAILID");
String s5=arg0.getParameter("ORGNAME");
String s6=arg0.getParameter("MOBILENO");
String s7=arg0.getParameter("PHONENO");
String s8=arg0.getParameter("PASSWORD");
out.println("inserted");
out.println(s1);
out.println("inserted1");
//String sql="insert into userdetails values(ka.nextval,"+s1+","+s2+","+s3+","+s4+","+s5+","+s6+","+s7+",56,'de',01-jan-98)";
PreparedStatement stmt1;
try {
stmt1 = con.prepareStatement("insert into userdetails values(ka1.nextval,?,?,?,?,?,?,?,23,'as','14-nov-87')");
stmt1.setString(1,s1);
stmt1.setString(2,s2);
stmt1.setString(3,s3);
stmt1.setString(4,s4);
stmt1.setString(5,s5);
stmt1.setString(6,s6);
stmt1.setString(7,s7);
stmt1.setString(8,s8);
//stmt1.executeUpdate();
out.println("inserted2");
stmt1.executeUpdate();
out.println("inserted3");
} catch (SQLException e1) {
// TODO Auto-generated catch block
out.println(e1);
}
}
@Override
public void destroy() {
// TODO Auto-generated method stub
super.destroy();
try
{
if(stmt!=null)
stmt.close();
stmt=null;
}
catch (SQLException ex)
{
ex.printStackTrace();
}
try
{
if(con!=null)
con.close();
con=null;
}
catch (SQLException ex)
{
ex.printStackTrace();
}
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
请任何人帮助我...我很困惑.......
【问题讨论】:
-
您在代码的第 92 行抱怨 NullPointerException。可能想向我们展示代码的第 92 行。当然,您可以在 use_db 类的第 92 行查看 null 是什么变量。
-
我的数据库连接代码正确吗?请检查.....