可以使用 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 秒执行一次查询任务。

Java 定时器任务:每隔5秒从数据库查询数据

原文地址: https://www.cveoy.top/t/topic/mLwH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录