对象-空指针异常问题,怎么修改?

问题描述

空指针异常问题,怎么修改?

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

对象-空指针异常问题,怎么修改?的相关文章

asp.net-未将对象引用设置到对象的实例。修改密码就出现这个问题

问题描述 未将对象引用设置到对象的实例.修改密码就出现这个问题 using System;using System.Data;using System.Configuration;using System.Collections;public partial class XueShengMod : System.Web.UI.Page{ protected void Page_Load(object sender EventArgs e) { } protected void Button1_C

link中new后面不跟类名出来的查询结果,是结构体还是对象?如果是对象,为什么不能修改?

问题描述 link中new后面不跟类名出来的查询结果,是结构体还是对象?如果是对象,为什么不能修改? link中new后面不跟类名出来的查询结果,是结构体还是对象?如果是对象,为什么不能修改? 解决方案 是引用类型,验证方法,你可以反射,它不是从ValueType继承的.

在Javascript操作JSON对象,增加 删除 修改的简单实现_javascript技巧

在Javascript操作JSON对象,增加删除修改全有的,详情见代码 <script type="text/javascript"> var jsonObj2 = { teacher: [ { name: "jordan", sex: "m", age: "40" }, { name: "bryant", sex: "m", age: "28" }, {

【JavaScript】JavaScript的对象-在函数中修改参数值的问题

在函数中修改参数值的问题 将基本数据类型的变量作为函 数参数传递的情况: <scritp language="javascript"> function changeValue(x) { x=5; } var x=3; changeVlaue(x); alert(x);//此处的x为多少? </script> 其实形参是局部变量,当函数调用结束以后,用作形参的局部变量就会 不存在.即使在函数中修改了传递进来的基本数据类型的参数值,它也 不会应影响到主程序中作为参

《ADOBE FIREWORKS CS5标准培训教材》——1.6 选择对象和修改对象

1.6 选择对象和修改对象 在对图形或图像进行编辑处理时,首先要选中此对象.在Fireworks的"选择"工具区中,有4类选择工具:"指针"工具."部分选定"工具."裁剪"工具和"缩放"工具.可以使用这些选择工具选择对象,以及对所选择的对象进行进一步的移动.修改.旋转.缩放.倾斜.扭曲和裁剪.导出等操作.还可以通过执行"堆叠"."组合"和"对齐"操

SQL Server修改数据库对象所有者(Owner)浅析

在SQL Server数据库中如何修改数据库对象(表.视图.存储过程..)的所有者(Owner)呢?一般我们可以使用系统提供的系统存储过程 sp_changeobjectowner来修改. 我们先看看sp_changeobjectowner在MSDN的文档介绍吧 更改当前数据库中对象的所有者.         重要提示:此存储过程只针对 Microsoft SQL Server 2000 中可用的对象进行.后续版本的 Microsoft SQL Server 将删除该功能.请避免在新的开发工作中

怎样对从ehcache缓存中取出的对象修改而不改变缓存中的对象

问题描述 怎样对从ehcache缓存中取出的对象修改而不改变缓存中的对象 使用缓存放入了对象,取出来修改属性后,发现缓存中的对象也修改了,也就是说缓存的是引用吗,如果想要对取出的对象操作而不改变缓存中的对象,要怎么做. List<Record> list = cache.get(cacheName, key); for(Record r:list){ if(r=="某条件"){ list.remove(r); } } System.out.println(list); 第一

java中为什么用final修饰了引用类型,但还是能修改对象,请大神解答下哈

问题描述 java中为什么用final修饰了引用类型,但还是能修改对象,请大神解答下哈 class Person{ String name; int age; Person(){} Person(String name,int age){ this.name=name; this.age=age; } public void ShowInfo(){ System.out.println("姓名:"+this.name+"年龄:"+this.age); } } pub

Javascript实例教程:原型对象

文章简介:我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法.如果按照字面量的意思来理解,那么prototype就是通过调用构造函数而创建的那个对象实例的原型对象.使用原型对象 我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法.如果按照字面量的意思来理解,那么prototype就是通过调用