定时任务怎么循环向数据库中存值
时间: 2023-08-02 18:19:46 浏览: 81
管理系统中计算机应用一.pdf
如果您想在定时任务中循环向数据库中存值,可以在定时任务中编写一个循环的程序来实现。具体来说,您可以在定时任务的主函数中使用一个无限循环来重复执行存值操作,例如:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Timer;
import java.util.TimerTask;
public class MyTask extends TimerTask {
private Connection conn;
public MyTask() throws SQLException {
// 在构造函数中初始化数据库连接
String url = "jdbc:mysql://localhost:3306/mydb";
String user = "root";
String password = "123456";
conn = DriverManager.getConnection(url, user, password);
}
public void run() {
// 循环执行存值操作,直到任务结束
while (true) {
try {
// 执行存值操作,这里以向"users"表中插入一条数据为例
String sql = "INSERT INTO users (name, age, gender) VALUES (?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
pstmt.setInt(2, 25);
pstmt.setString(3, "男");
pstmt.executeUpdate();
pstmt.close();
System.out.println("已向数据库中插入一条数据");
} catch (SQLException e) {
e.printStackTrace();
}
try {
// 暂停一段时间,以便下一次循环
Thread.sleep(120000); // 暂停120秒,即两分钟
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws SQLException {
Timer timer = new Timer();
timer.schedule(new MyTask(), 0);
}
}
```
这个程序会在每两分钟向"users"表中插入一条数据,然后等待两分钟再次插入。循环执行存值操作直到任务结束。
需要注意的是,在实际开发中,您可能需要根据实际情况对这个程序进行修改,例如增加异常处理、关闭数据库连接等。同时,为了避免频繁地向数据库中插入数据导致性能问题,您可能需要适当地调整循环中的暂停时间。
阅读全文