Java 定时器任务:每隔 5 秒从数据库查询数据
可以使用 java.util.Timer 和 java.util.TimerTask 类来实现定时器任务,使用 JDBC 来查询数据库中的数据。以下是一个示例代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Timer;
import java.util.TimerTask;
public class DatabaseQueryTask extends TimerTask {
private Connection connection;
public DatabaseQueryTask() throws SQLException {
// 连接数据库
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "password";
connection = DriverManager.getConnection(url, username, password);
}
@Override
public void run() {
try {
// 查询前 5 秒内的数据
String sql = "SELECT * FROM table_name WHERE create_time > DATE_SUB(NOW(), INTERVAL 5 SECOND) LIMIT 5";
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()) {
// 处理查询结果
// ...
}
resultSet.close();
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws SQLException {
Timer timer = new Timer();
timer.schedule(new DatabaseQueryTask(), 0, 5000); // 每隔 5 秒执行一次查询任务
}
}
在上面的代码中,首先通过 JDBC 连接到数据库,然后在任务的 run 方法中执行查询操作,查询前 5 秒内的数据。由于定时器的 schedule 方法可以设置任务的开始时间和间隔时间,因此可以通过设置间隔时间为 5 秒来实现每隔 5 秒执行一次查询任务。在查询结果中处理数据的部分可以根据具体需求进行修改。
原文地址: https://www.cveoy.top/t/topic/mLwT 著作权归作者所有。请勿转载和采集!