package dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.ArrayList;import po.Student;public class StudentDao {
private Connection conn = null;

public void initConnection(){
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/t_student?"
+ "characterEncoding=utf8&useSSL=false&serverTimezone=UTC"
+ "&rewriteBatchedStatements=true","root","123asd");
}catch(Exception ex){ex.printStackTrace();}
}

public ArrayList queryStuByName(String stuname){
ArrayList stus = new ArrayList();
String sql = "SELECT STUNO,STUNAME,STUSEX,STUBIR FROM t_student WHERE STUNAME LIKE '%" + stuname + "%'"; try{
this.initConnection();
ResultSet rs = conn.createStatement().executeQuery(sql);
while(rs.next()){
Student stu = new Student();
stu.setStuNO(rs.getString("STUNO"));
stu.setStuNAME(rs.getString("STUNAME"));
stu.setStuSEX(rs.getString("STUSEX"));
stu.setStuBIR(rs.getString("STUBIR"));
stus.add(stu);
}
}catch(Exception ex){ex.printStackTrace();}
finally{
this.closeConnection();
}
return stus;
}

public void closeConnection(){
try{
if(conn!=null){
conn.close();
conn = null;
}
}catch(Exception ex){ex.printStackTrace();}
}
}

解决方案 »

  1.   

    十一月 21, 2019 9:58:27 上午 org.apache.struts.action.RequestProcessor processException
    警告: Unhandled Exception thrown: class java.lang.NullPointerException
    十一月 21, 2019 9:58:27 上午 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet [action] in context with path [/shiyan5] threw exception [java.lang.NullPointerException] with root cause
    java.lang.NullPointerException
    at sy1.QueryAction.execute(QueryAction.java:29)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
    是这个么
      

  2.   

    贴图吧,这样太难看了,看看你这个方法怎么写的,是这一行空指针了
    at sy1.QueryAction.execute(QueryAction.java:29)
      

  3.   

    我点了以后 他跳转到是sname=new String(sname.getBytes("gb2312"));
      

  4.   

    queryFrom.getStuNAME() 返回了null,调试 一下就知道具体情况了
      

  5.   

    package dao;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.util.ArrayList;import po.Student;public class StudentDao {
    private Connection conn = null;public void initConnection(){
    try{
    Class.forName("com.mysql.jdbc.Driver");
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/t_student?"
    + "characterEncoding=utf8&useSSL=false&serverTimezone=UTC"
    + "&rewriteBatchedStatements=true","root","123asd");
    }catch(Exception ex){ex.printStackTrace();}
    }public ArrayList queryStuByName(String stuname){
    ArrayList stus = new ArrayList();
    String sql = "SELECT STUNO,STUNAME,STUSEX,STUBIR FROM t_student WHERE STUNAME LIKE '%" + stuname + "%'";try{
    this.initConnection();
    ResultSet rs = conn.createStatement().executeQuery(sql);
    while(rs.next()){
    Student stu = new Student();
    stu.setStuNO(rs.getString("STUNO"));
    stu.setStuNAME(rs.getString("STUNAME"));
    stu.setStuSEX(rs.getString("STUSEX"));
    stu.setStuBIR(rs.getString("STUBIR"));
    stus.add(stu);
    }
    }catch(Exception ex){ex.printStackTrace();}
    finally{
    this.closeConnection();
    }
    return stus;
    }public void closeConnection(){
    try{
    if(conn!=null){
    conn.close();
    conn = null;
    }
    }catch(Exception ex){ex.printStackTrace();}
    }分享这套java基础视频出来,只是想帮助到需要的人,需要的可以点进去看看:http://mrw.so/5eOtLh
    }
      

  6.   

    你现在应该是数据库配置问题,现在出现这个错误的原因就是你去调用这个方法的时候这个对象是个null,你去调用null的方法就会抛出这个异常,你可以debug看下StudentDao里面的conn对象是不是null
      

  7.   

    29行的sname应该是没取到值吧,看一下是什么原因没取到值。