Java 定时器任务:每5秒从数据库查询数据
以下是一个定时器任务的示例代码,它使用 Java 中的 ScheduledExecutorService 类来定时运行任务。在任务中,我们使用 JDBC 从数据库中查询前 5 秒内的数据。请注意,这只是一个示例代码,您需要根据自己的需求进行修改和适应。
import java.sql.*;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class TimerTaskExample {
private static final String DB_URL = 'jdbc:mysql://localhost:3306/mydatabase';
private static final String DB_USER = 'myuser';
private static final String DB_PASSWORD = 'mypassword';
public static void main(String[] args) {
// 创建一个ScheduledExecutorService对象
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
// 每5秒运行一次任务
executor.scheduleAtFixedRate(new QueryTask(), 0, 5, TimeUnit.SECONDS);
}
private static class QueryTask implements Runnable {
@Override
public void run() {
try {
// 连接数据库
Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
// 构建查询语句
String query = 'SELECT * FROM mytable WHERE timestamp >= DATE_SUB(NOW(), INTERVAL 5 SECOND)';
// 创建PreparedStatement对象并设置参数
PreparedStatement stmt = conn.prepareStatement(query);
// 执行查询并处理结果
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
// 处理结果
}
// 关闭连接和相关对象
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
原文地址: https://www.cveoy.top/t/topic/mLwG 著作权归作者所有。请勿转载和采集!