问题描述
- 空指针异常问题,怎么修改?
-
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对象有关啊?
解决方案三:
伴随程序员一生的空指针异常....断点。看哪个对象空了,怎么会空的。
解决方案四:
Java中通过动态代理获取数据库连接池报空指针异常及类型转换异常的问题
ListView.setAdapter(adapter);空指针异常的问题
解决方案五:
感学各位的回答,问题解决了,就像采纳的答案上面写的一样,加一个判断条件就行了。
时间: 2024-07-28 13:37:24