空指针异常的问题

宇宙winner 2012-10-19 03:30:09
public List<Employee> findEmployeeInfo(String name) throws DB_Exception {
// TODO Auto-generated method stub
Connection con = DataSource.getConnection();

List<Employee> list = new ArrayList<Employee>();
if(con!=null){
try {
Statement stat = con.createStatement();

String sql = "select * from employee where name='"+name+"'";
System.out.println(sql);
ResultSet rs = stat.executeQuery(sql);

while (rs.next()) {
Employee employee = new Employee();

employee.setId(rs.getInt("id"));
employee.setName(rs.getString("name"));
employee.setBirthday(rs.getString("birthday"));
employee.setDocument_type(rs.getString("document_type"));
employee.setDocument_number(rs.getString("document_number"));
employee.setAddress(rs.getString("address"));
employee.setTel(rs.getString("tel"));
employee.setExpected_address(rs.getString("expected_address"));
employee.setComputer_rank(rs.getString("computer_rank"));
employee.setWorktime(rs.getString("worktime"));
employee.setSkills(rs.getString("skills"));
employee.setSex(rs.getString("sex"));
employee.setHometown(rs.getString("hometown"));
employee.setEmail(rs.getString("email"));
employee.setExpected_money(rs.getString("expected_money"));
employee.setLanguage_rank(rs.getString("language_rank"));
employee.setOtherrank(rs.getString("otherrank"));
employee.setBelongid(rs.getInt("belongid"));
employee.setBelong_name(rs.getString("belong_name"));
employee.setStatus(rs.getString("status"));
employee.setSchool(rs.getString("school"));
employee.setDate1(rs.getString("date1"));
employee.setSubject(rs.getString("subject"));
employee.setEduction(rs.getString("eduction"));
employee.setExperience(rs.getString("experience"));
employee.setOversea_experience(rs.getString("oversea_experience"));

list.add(employee);
}

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new DB_Exception();
}
finally{
DataSource.close();
}
}
return null;
}

空指针异常,name的值是空,但数据库是有值的。


java.lang.NullPointerException

dao.EmployeeDao.findUndergoInfo(EmployeeDao.java:220)
action.EmployeeInfoAction.employeeinfo(EmployeeInfoAction.java:108)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:270)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:498)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:619)


...全文
131 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiceRice 2012-10-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
220:String sql2 = "select * from undergo where employeeid="+un.getEmployeeid()+"";
[/Quote]

如果你行数没找错的话,如3楼所说,基本上很高概率就是 un 为 null 了。
宇宙winner 2012-10-19
  • 打赏
  • 举报
回复
你提醒了我下,我把这个方法注释了一下,页面那里的<c:if>语句有问题。
iceworldvip 2012-10-19
  • 打赏
  • 举报
回复
我感觉报错的意思是un这个对象为null
宇宙winner 2012-10-19
  • 打赏
  • 举报
回复
public ArrayList<Undergo> findUndergoInfo(Undergo un) throws DB_Exception {
// TODO Auto-generated method stub
Connection con = DataSource.getConnection();

ArrayList<Undergo> arr= new ArrayList<Undergo>();
if(con!=null){
try {
Statement stat = con.createStatement();

String sql = "select id from employee where employeeid="+un.getEmployeeid()+"";

ResultSet rs = stat.executeQuery(sql);

while (rs.next()) {
un.setEmployeeid(rs.getInt("id"));
}

String sql2 = "select * from undergo where employeeid="+un.getEmployeeid()+"";

rs = stat.executeQuery(sql2);

while (rs.next()) {
un.setId(rs.getInt("id"));
un.setCompany_name(rs.getString("company_name"));
un.setData(rs.getString("date"));
un.setPosition(rs.getString("position"));
un.setProject(rs.getString("project"));

arr.add(un);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DataSource.close();
}
}
return null;
}

这里还有一个方法,我把数据库里的两个表关联起来。把数据输出到页面。

220:String sql2 = "select * from undergo where employeeid="+un.getEmployeeid()+"";
MiceRice 2012-10-19
  • 打赏
  • 举报
回复
dao.EmployeeDao.findUndergoInfo(EmployeeDao.java:220)

是哪一行?

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧