/* 
* Created on 2004-9-24 

* To change the template for this generated file go to 
* Window>Preferences>Java>Code Generation>Code and Comments 
*/ 
package com.department; import java.io.IOException; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; import oa.sys.Db; 
import oa.sys.Str; 
/** 
**************************************************** 
*类名称: Add <br> 
*类功能: 增加部门信息 <br> 
*创建: 白伟明 2004年9月23日 <br> 
**************************************************** 
* To change the template for this generated type comment go to 
* Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments 
*/ 
public class Add extends HttpServlet{ 
private HttpSession session=null; 
private Statement stmt=null; 
private ResultSet rs=null; 
private String name,explain,sqli,sqls; 
private int temp=0; public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{ 
request.setCharacterEncoding("gb2312"); 
response.setContentType("text/html; charset=gb2312"); 
Str str=new Str(); 
Db db=new Db(); 
session=request.getSession(); 
name=request.getParameter("name"); 
explain=request.getParameter("explain"); 
name=str.inStr(name); 
explain=str.inStr(explain); 
sqli="INSERT INTO department(name,explain) VALUES('"+name+"','"+explain+"')"; 
sqls="SELECT * FROM department WHERE name='"+name+"'"; 
stmt=db.getStmtread(); 
try { 
rs=stmt.executeQuery(sqls); 
//查询添加部门是否存在 
if(rs.next()){ 
session.setAttribute("depmsg","该部门已存在"); 
}else{ 
rs.close(); 
stmt.close(); 
//添加部门 
stmt=db.getStmt(); 
temp=stmt.executeUpdate(sqli); 
if(temp>0){ 
session.setAttribute("depmsg","添加成功"); 
}else{ 
session.setAttribute("depmsg","添加失败"); 


} catch (SQLException e) { 
e.printStackTrace(); 
}finally{ 
db.close(); 
RequestDispatcher dispatcher=request.getRequestDispatcher("add.jsp"); 
dispatcher.forward(request,response); 
} } 
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{ 
doPost(request,response); 


空指针提示(空指针提示问题,急用!请各位大哥找找再怎么回事?): 
-------------------------------------------------------------------------------- type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception java.lang.NullPointerException 
com.department.Add.doPost(Add.java:53) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:710) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.25 logs. 
rs=stmt.executeQuery(sqls); 这个地方报错!空指针

解决方案 »

  1.   

    看看数据库里面有值吗?某些表的某些字段为null会引起空指针异常
      

  2.   

    stmt=db.getStmtread(); 
    得到的为null
      

  3.   

    com.department.Add.doPost(Add.java:53) zhe yi hang de dai ma shi shen me ???
      

  4.   

    com.department.Add.doPost(Add.java:53) 
    第53行代码报空指针,哪一行代码是第53行?最好有把行号也发出来。
    把你用到的值在控制台输出,看是不是null.
      

  5.   

    把 stmt 打印出来。应该是为null的。
    那么就是 stmt=db.getStmtread(); 这个为空。去检查Db类里面的代码。
    一般数据库的DBUtil类都应该先测试的。建议在里面建个main方法测试所有的数据库方法。。
      

  6.   

    添加 一句代码调试一下
    System.out.println(stmt);
    看看结果是不是null 
    是的话 那就是你没连接上数据库了 Connection出问题了
    启动一下数据库的服务就OK了  
    楼主试下
      

  7.   

    你最好多System.out.println()几次;
    进行跟踪,找出是那里是空值
      

  8.   

    应该是stmt没得到吧!
    你自己调试下看看有没有得到stmt对象
      

  9.   

    数据库连接的代码在Db.java这个类里吧,返回的stmt为null,那肯定是在getStmtread();里了 不知道你这方法的代码是什么,不过问题肯定是处在这