以下是一个使用 Java 定时器任务和 JDBC 来每隔 5 秒从数据库中查询前 5 秒内的数据的示例代码:

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 static final String JDBC_DRIVER = 'com.mysql.jdbc.Driver';
    private static final String DB_URL = 'jdbc:mysql://localhost/mydatabase';
    private static final String USER = 'username';
    private static final String PASS = 'password';
    private static final long QUERY_INTERVAL = 5000; // 5 秒

    @Override
    public void run() {
        try {
            Connection conn = null;
            Statement stmt = null;
            try {
                // Register JDBC driver
                Class.forName(JDBC_DRIVER);

                // Open a connection
                conn = DriverManager.getConnection(DB_URL, USER, PASS);

                // Execute a query
                String sql = 'SELECT * FROM mytable WHERE timestamp >= DATE_SUB(NOW(), INTERVAL 5 SECOND) LIMIT 5';
                stmt = conn.createStatement();
                ResultSet rs = stmt.executeQuery(sql);

                // Process the result set
                while (rs.next()) {
                    // Do something with the data
                    System.out.println(rs.getString('column1'));
                }
            } finally {
                // Close resources
                if (stmt != null) stmt.close();
                if (conn != null) conn.close();
            }
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        // Start the timer
        Timer timer = new Timer();
        timer.schedule(new DatabaseQueryTask(), 0, QUERY_INTERVAL);
    }
}

在上面的示例中,我们创建了一个DatabaseQueryTask类,它是一个TimerTask子类,用于执行JDBC查询任务。我们在run()方法中定义了JDBC连接和查询逻辑。这里我们使用java.sql包中的类来执行查询。查询语句使用DATE_SUB()函数来查询最近5秒的数据,然后用LIMIT子句限制结果集的大小为5。查询结果使用ResultSet对象来处理。

main()方法中,我们创建了一个Timer对象并调用它的schedule()方法来启动定时器任务,该任务将每隔5秒钟执行一次。

请注意,这只是一个示例代码,需要根据实际需求进行修改。例如,您需要更改JDBC连接字符串、用户名、密码、表名、列名等来适应您自己的数据库环境。

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

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

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