照着视频敲得,没想到还是出现了解决不了的问题。。
错误提示:
Type Exception Report
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
java.lang.NullPointerException
com.yql.mainServlet.mainServlet.checklogin(mainServlet.java:63)
com.yql.mainServlet.mainServlet.service(mainServlet.java:26)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Note The full stack trace of the root cause is available in the server logs.
控制台报错代码,我看懂大意是ResultSet赋值未成功,还是null,在后来关闭ResultSet时调用close方法,出现空指针调用报错。
public User checklogin(String name,String pwd)
{
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
User u=null;
try{
Class.forName("oracle.jdbc.OracleDriver");
System.out.println("开始链结");
conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:YQL","system","yql19990101");
System.out.println("连接成功");
String sql="select * from Student where sname=? and sno=?;";
ps=conn.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, pwd);
rs=ps.executeQuery();
while(rs.next()){
u=new User();
u.setName(rs.getString("sname"));
u.setPassword(rs.getString("sno"));
}
}
catch (Exception e)
{
e.getStackTrace();
}finally{
try{
rs.close(); //错误提示在这
}catch(SQLException e){
e.getStackTrace();
}
try{
ps.close();
}catch(Exception e)
{
e.getStackTrace();
}
try{
conn.close();
}catch(Exception e)
{
e.getStackTrace();
}
}
return u;
}