我正在尝试开发一个桌面java应用程序,用于在Library中借书,我希望程序每隔10分钟刷新一次,并检查数据库以查找是否有任何借来的书籍返回日期已通过当前约会与否。
我使用过线程,然而,发生了一个异常,表示连接超时
public void checkDB(){
Thread clock = new Thread(){
public void run(){
for(;;){
String checkOnLoanBooks = "SELECT ....";
PreparedStatement onLoanStmt = conn.prepareStatement(checkOnLoanBooks);
onLoanStmt.setString(1, "No");
onLoanStmt.setDate(2, new java.sql.Date(fromDate.getTime()));
onLoanStmt.setDate(3, new java.sql.Date(toDate.getTime()));
ResultSet onLoanRs = onLoanStmt.executeQuery();
if(!onLoanRs.next()){} else {
do{
// Getting data from DB
}while(onLoanRs.next());
try {
sleep(100000);
} catch (InterruptedException ex) {
Logger.getLogger(BorrowHome.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
};
clock.start();
}
答案 0 :(得分:0)
我认为问题在于你没有关闭与数据库的连接,所以由于等待很长一段时间,它正在关闭它:sleep(100000);
。
您应始终打开连接,执行操作然后将其关闭。