如何用java代码定时器任务用jdbc来每隔5秒从数据库中查询5秒前的数据
以下是一个示例代码,可以每隔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 DatabaseTimerTask extends TimerTask {
private Connection connection;
private Statement statement;
public DatabaseTimerTask() throws SQLException {
// 初始化数据库连接
String jdbcUrl = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "password";
connection = DriverManager.getConnection(jdbcUrl, username, password);
statement = connection.createStatement();
}
@Override
public void run() {
try {
// 查询5秒前的数据
String sql = "SELECT * FROM my_table WHERE create_time < NOW() - INTERVAL 5 SECOND";
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()) {
// 处理查询结果
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println("Found data: id=" + id + ", name=" + name);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws SQLException {
// 创建定时器任务并安排每5秒执行一次
Timer timer = new Timer();
timer.schedule(new DatabaseTimerTask(), 0, 5000);
}
}
注意,这个示例代码只是演示了在定时器任务中使用 JDBC 查询数据库的基本方法,实际使用时还要根据具体的需求进行适当的修改和优化。例如,需要注意数据库连接的管理、异常处理、查询结果的处理等问题。
原文地址: https://www.cveoy.top/t/topic/biXJ 著作权归作者所有。请勿转载和采集!