package Link.Mysql;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class QueryDataThread {
private static final String DB_URL = "jdbc:mysql://localhost/en_chi_dict";
private static final String USER = "root";
private static final String PASS = "admin";
public static void main(String[] args) {
Thread queryThread = new Thread(new QueryDataRunnable());
queryThread.start();
}
static class QueryDataRunnable implements Runnable {
@Override
public void run() {
try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
Statement stmt = conn.createStatement()) {
String sql = "SELECT * FROM dict_info";
ResultSet rs = stmt.executeQuery(sql);
List<DictInfo> dictInfoList = new ArrayList<>();
while (rs.next()) {
int id = rs.getInt("Id");
String engName = rs.getString("eng_name");
String chiVal = rs.getString("chi_val");
String lastUsedTime = rs.getString("last_used_time");
int usedTimes = rs.getInt("used_times");
String createdTime = rs.getString("created_time");
int priority = rs.getInt("priority");
dictInfoList.add(new DictInfo(id, engName, chiVal, lastUsedTime, usedTimes, createdTime, priority));
}
for (DictInfo dictInfo : dictInfoList) {
int id = dictInfo.getId();
// 更新last_used_time字段
String timeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String updateLastUsedTimeSql = "UPDATE dict_info SET last_used_time = '" + timeStamp + "' WHERE Id = " + id;
stmt.executeUpdate(updateLastUsedTimeSql);
// 更新used_times字段
int newUsedTimes = dictInfo.getUsedTimes() + 1;
String updateUsedTimesSql = "UPDATE dict_info SET used_times = " + newUsedTimes + " WHERE Id = " + id;
stmt.executeUpdate(updateUsedTimesSql);
System.out.println("Id: " + id);
System.out.println("English Name: " + dictInfo.getEngName());
System.out.println("Chinese Value: " + dictInfo.getChiVal());
System.out.println("Last Used Time: " + timeStamp);
System.out.println("Used Times: " + newUsedTimes);
System.out.println("Created Time: " + dictInfo.getCreatedTime());
System.out.println("Priority: " + dictInfo.getPriority());
System.out.println("---------------------");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
static class DictInfo {
private int id;
private String engName;
private String chiVal;
private String lastUsedTime;
private int usedTimes;
private String createdTime;
private int priority;
public DictInfo(int id, String engName, String chiVal, String lastUsedTime, int usedTimes, String createdTime, int priority) {
this.id = id;
this.engName = engName;
this.chiVal = chiVal;
this.lastUsedTime = lastUsedTime;
this.usedTimes = usedTimes;
this.createdTime = createdTime;
this.priority = priority;
}
public int getId() {
return id;
}
public String getEngName() {
return engName;
}
public String getChiVal() {
return chiVal;
}
public String getLastUsedTime() {
return lastUsedTime;
}
public int getUsedTimes() {
return usedTimes;
}
public String getCreatedTime() {
return createdTime;
}
public int getPriority() {
return priority;
}
}
}
使用子线程查询数据库
最新推荐文章于 2024-08-23 15:54:50 发布
该文章详细描述了一个Java程序,通过Mysql连接执行SQL查询,获取dict_info表中的数据,并在运行时更新last_used_time和used_times字段。程序中创建了DictInfo类来存储查询结果。
摘要由CSDN通过智能技术生成