您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Java >> servlet定时器访问数据库NullPointerException

servlet定时器访问数据库NullPointerException

来源:网络整理     时间:2016/6/27 13:37:37     关键词:

关于网友提出的“ servlet定时器访问数据库NullPointerException”问题疑问,本网通过在网上对“ servlet定时器访问数据库NullPointerException”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: servlet定时器访问数据库NullPointerException
描述:

这个是访问数据库的程序

package com.cgwh.data;
import java.sql.*;
public class DataDispose {
public static void getDispose() {
Connection conn = null;
Statement st = null;
Statement stUpdate = null;
ResultSet rs = null;
String sql = "select * from userlist where ifoverdue = 'overdue'";
String sqlUpdate = "update userlist set ifoverdue = 'notoverdue'";
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/Verify", "root", "");
st = conn.createStatement();
rs = st.executeQuery(sql);
while(rs.next()) {
stUpdate =  conn.createStatement();
stUpdate.executeUpdate(sqlUpdate);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
stUpdate.close();
rs.close();
st.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

这个是定时器的代码
import java.util.Date; 
import java.util.Timer; 
import java.util.TimerTask; 
import com.cgwh.data.DataDispose;
import javax.servlet.http.HttpServlet; 
public class DataTimer extends HttpServlet { 
static { 
Timer timer = new Timer(); 
timer.schedule(new MyTask(), 1000, 2000);//在1秒后执行此任务,每次间隔2秒,如果传递一个Data参数,就可以在某个固定的时间执行这个任务. 


class MyTask extends TimerTask { 
public void run() { 
 DataDispose.getDispose();



程序的确执行成功,查看数据库得字段的确被改变。但是报出NullPointException,是怎么回事?
解决方案1:

以下代码判断下
rs.close();
st.close();
改成:
if(null != rs){
rs.close();
}
if(null != st){
st.close();
}


以上介绍了“ servlet定时器访问数据库NullPointerException”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2108122.html

相关图片

相关文章