package com.car.dao;import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;import com.car.util.ConnOracle;
import com.car.vo.Question;
/**
* @author cyl
*
*/
public class CarDAOImpl implements ICarDAO {
private Statement stmt;
/**
*
*/
public CarDAOImpl() {
// TODO Auto-generated constructor stub
} public String apply(String pin) {
// TODO Auto-generated method stub
ConnOracle co =new ConnOracle();
String result="";
result = co.apply(pin);
return result;
} public List<Question> exam(String zkzid) {
// TODO Auto-generated method stub
List<Question> list = new ArrayList<Question>();
String sql = "select paper_id from examine where em_in="+zkzid+";";
//System.out.println(sql);可以正常显示
try {
ResultSet rs = stmt.executeQuery(sql);//这里抛出空指针!!!! while(rs.next()){
String paperid = rs.getString("paper_id");
System.out.println(rs.getString("paper_id"));
String sql2 = "select question_id_seq from paper where paper_id="+paperid+";";
ResultSet rs2 =stmt.executeQuery(sql2);
while(rs2.next()){
String question_id_seq = rs.getString("question_id_seq");
StringTokenizer st = new StringTokenizer(question_id_seq,"_");
String nextToken = st.nextToken();
do{
String sql3 = "select * from question where question_id = "+nextToken+";";
ResultSet rs3 =stmt.executeQuery(sql3);
Question q = new Question();
q.setQuestion_id(rs3.getInt("question_id"));
q.setQuestion_body(rs3.getString("question_body"));
q.setQuestion_form(rs3.getString("question_form"));
q.setBranch_a(rs3.getString("Branch_a"));
q.setBranch_b(rs3.getString("Branch_b"));
q.setBranch_c(rs3.getString("Branch_c"));
q.setQuestion_key(rs3.getString("question_key"));
q.setQuestion_(rs3.getInt("question_"));
q.setPic_name(rs3.getString("pic_name"));
q.setQuestion_type_id(rs3.getInt("question_type_id"));
q.setQuestion_sts(rs3.getString("question_sts"));
list.add(q);
nextToken = st.nextToken();
}while(nextToken != "");
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
}异常堆
2011-6-7 18:01:20 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet CarServlet threw exception
java.lang.NullPointerException
at com.car.dao.CarDAOImpl.exam(CarDAOImpl.java:50)
at com.car.Servlet.CarServlet.service(CarServlet.java:45)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
解决方案 »
- EL表达式怎么获得JS的参数值
- 项目中有两个jar文件里有相同名称的类怎么区分?
- 各位大侠,谁用过139邮箱发邮件时的截图功能?用java该怎样实现?
- 面试题,大家都来看看,能回答几题就回答几题!
- [转载]关于Jive汉化问题,文章还不错,大家学习下,可惜找不到作者信息……
- 跪求前台高手
- 初学者的问题,大家给看看
- ckeditor、xheditor用struts2在IE不能显示
- 请问Struts+mysql的中文怎么怎么解决?
- SpringMVC用progressListener做文件上传进度条时,servletFileUpload.parseRequest(request);返回空值
- 请教一个jsp计算问题
- Struts 2.18文件下载 Ie6下出错
就是这一句:
String sql = "select paper_id from examine where em_in='"+zkzid+"';";
这个zkzid要引起来
String sql = "select paper_id from examine where em_in='"+zkzid+"';";
这个zkzid要用单引号引起来
至于空指针是因为stmt为空,因为你在CarDAOImpl 的里面只声明了一个私有成员
private Statement stmt;没有给它分配内存
stmt的获得是根据Connection对象获得的,Connection对象要根据数据库的驱动,用户名和密码获得,你的程序缺少老多,请补充