Java 定时器任务:每 5 秒从数据库查询数据
以下是一个简单的 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 TimerTaskExample {
public static void main(String[] args) {
TimerTask task = new TimerTask() {
@Override
public void run() {
Connection conn = null;
Statement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
stmt = conn.createStatement();
String query = "SELECT * FROM mytable WHERE created_at >= DATE_SUB(NOW(), INTERVAL 5 SECOND) ORDER BY created_at DESC LIMIT 5";
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
String data = rs.getString("data");
System.out.println(data);
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} finally {
try {
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
};
Timer timer = new Timer();
long delay = 0;
long intervalPeriod = 5000;
timer.scheduleAtFixedRate(task, delay, intervalPeriod);
}
}
上面的代码使用了 Java 的定时器类 Timer 和定时器任务类 TimerTask。在这个示例中,定时器任务会每隔 5 秒钟执行一次查询语句,然后打印出结果集中的数据。
查询语句使用了 MySQL 数据库的语法,可以根据需要进行修改。在这个示例中,查询语句会查询创建时间在 5 秒钟内的数据,并按照创建时间倒序排列,最终只返回前 5 条结果。
这个示例还使用了 JDBC 来连接 MySQL 数据库,并执行查询语句。在使用 JDBC 时需要注意连接数据库的参数,例如数据库的 URL、用户名和密码等。
总之,这个示例展示了如何使用 Java 的定时器和 JDBC 来定期从数据库中查询数据。可以根据需要进行修改和扩展。
原文地址: https://www.cveoy.top/t/topic/mLwO 著作权归作者所有。请勿转载和采集!