Java 定时器任务:每隔5秒从数据库查询数据
可以使用 Java 中的 Timer 和 TimerTask 类来实现定时器任务,使用 JDBC 连接数据库并执行查询语句获取数据。
以下是示例代码:
import java.sql.*;
import java.util.Timer;
import java.util.TimerTask;
public class QueryTask extends TimerTask {
private Connection conn;
public QueryTask(Connection conn) {
this.conn = conn;
}
@Override
public void run() {
try {
Statement stmt = conn.createStatement();
String sql = 'SELECT * FROM 'table_name' WHERE created_at > DATE_SUB(NOW(), INTERVAL 5 SECOND) LIMIT 5';
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 处理查询结果
}
rs.close();
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
// 初始化数据库连接
Connection conn = DriverManager.getConnection('jdbc:mysql://localhost:3306/'db_name'', 'username', 'password');
// 创建定时器
Timer timer = new Timer();
// 每隔5秒执行一次查询任务
timer.schedule(new QueryTask(conn), 0, 5000);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
需要替换以下内容:
- 'table_name': 数据库表名
- 'created_at': 记录创建时间的字段名
- 'db_name': 数据库名
- 'username': 数据库用户名
- 'password': 数据库密码
在 run 方法中,使用 JDBC 执行查询语句获取前 5 秒内的数据,并处理查询结果。在 main 方法中,创建数据库连接和定时器,并指定每隔 5 秒执行一次查询任务。
原文地址: https://www.cveoy.top/t/topic/mLwH 著作权归作者所有。请勿转载和采集!