public ResultSet executeQuery(String sql) {
try { // 捕捉异常
conn = getConnection(); // 调用getConnection()方法构造connection对象的一个实例conn
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
} catch (SQLException ex) {
System.err.println(ex.getMessage()); // 输出异常消息
}
return rs; // 返回结果集对象
}
报错:
java.lang.NullPointerException
com.wgh.tools.ConnDB.executeQuery(ConnDB.java:56)
com.wgh.dao.DiaryDao.queryDiary(DiaryDao.java:28)
com.wgh.servlet.DiaryServlet.listAllDiary(DiaryServlet.java:249)
com.wgh.servlet.DiaryServlet.doPost(DiaryServlet.java:52)
com.wgh.servlet.DiaryServlet.doGet(DiaryServlet.java:66)
javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.wgh.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:24)
下面这是56行:
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
conn = getConnection(); // 调用getConnection()方法构造connection对象的一个实例conn
if(conn != null){
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
}
ResultSet.TYPE_SCROLL_INSENSITIVE常量允许记录指针向前或向后移动,且当ResultSet对象变动记录指针时,会影响记录指针的位置。
ResultSet.CONCUR_READ_ONLY常量可以解释为ResultSet对象仅能读取,不能修改,在对数据库的查询操作中使用。
这个问题会不会和ResultSet对象有关啊?
伴随程序员一生的空指针异常....断点。看哪个对象空了,怎么会空的。
感学各位的回答,问题解决了,就像采纳的答案上面写的一样,加一个判断条件就行了。