关于网友提出的“ 请教在“做定时查询数据库数据,并且输出查询结果”时遇到的错误。”问题疑问,本网通过在网上对“ 请教在“做定时查询数据库数据,并且输出查询结果”时遇到的错误。”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 请教在“做定时查询数据库数据,并且输出查询结果”时遇到的错误。描述:
有个问题要请教各位大侠:
我才开始学习java。
需求:我想定时到服务器取数据,并且把数据输出到界面上。
目前情况描述:不加timer的时候是可以连上数据库,并且输出数据结果的。可是一加定时操作就报错,我不知道该怎么做才可以实现。
我目前的代码如下,请大侠们帮忙看看该怎么做才行:
import java.util.*;
import java.io.*;
import java.sql.*;
public class TimerUse
{
public static void main(String[] args)
throws SQLException,ClassNotFoundException{
PickTask pt = new PickTask();
pt.start(1,3);
}
}
// class PickTask start
class PickTask
{
private Timer timer;
PickTask()
{
timer = new Timer();
}
public TimerTask task = new TimerTask()
{
public void run ()
{
ConnectionManager task = new ConnectionManager();
task.Results();
}
};
public void start(int delay,int internal )
{
timer.schedule(task,delay*1000,internal*1000);
}
}
// class PickTask end
class ConnectionManager
{
private Connection connection;
private Statement statement;
private String driver="sun.jdbc.odbc.JdbcOdbcDriver";
private String dbURL="jdbc:odbc:db";
private String login="test";
private String password="pwd";
private PreparedStatement stm;
ConnectionManager()
{
}
public void Results()
throws SQLException,ClassNotFoundException{
String sSQL="SELECT USER_NAME,USER_BH FROM T_USER_INFO WHERE USER_BH LIKE '00%'";
try{
Class.forName(driver);
c />
Statement stm = connection.createStatement();
ResultSet res = stm.executeQuery(sSQL);
System.out.print("\n"+"Name"+"\t"+"User_BH");
while(res.next()){
System.out.print("\n"+res.getString("USER_NAME") +"\t"+ res.getString("USER_BH"));
}
stm.close();
}catch(SQLException e){
System.out.println("sqlerror");
c />
}
}
}
编译时报错为:
D:\work>javac TimerUse.java
TimerUse.java:40: unreported exception java.sql.SQLException; must be caught or
declared to be thrown
task.Results();
^
1 error