ADD file via upload

main
p46nuwtki 3 months ago
parent 37f6906bb1
commit 4be61241b4

@ -0,0 +1,139 @@
package dao;
import java.sql.*;
/**
*
* 2023210480
*/
public class DbUtil {
private Connection conn = null;
private PreparedStatement ps = null;
private ResultSet rs = null;
// 数据库连接配置已改为postgres数据库对应你新建的表
private static final String URL = "jdbc:postgresql://localhost:5432/postgres";
private static final String USER = "postgres";
private static final String PASSWORD = "123456"; // 你的数据库密码
/**
*
*/
public Connection getConnection() {
try {
if (conn == null || conn.isClosed()) {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(URL, USER, PASSWORD);
System.out.println("连接对象创建成功:" + conn); // 新增:打印连接对象,辅助排查
}
} catch (ClassNotFoundException e) {
System.out.println("❌ 驱动加载失败找不到PostgreSQL JDBC驱动");
e.printStackTrace();
} catch (SQLException e) {
System.out.println("❌ 数据库连接失败URL/用户名/密码错误,或数据库未启动");
e.printStackTrace();
} catch (Exception e) {
System.out.println("❌ 未知异常导致连接失败");
e.printStackTrace();
}
return conn;
}
/**
*
*/
public ResultSet executeQuery(String sql, Object... params) {
try {
ps = getConnection().prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
ps.setObject(i + 1, params[i]);
}
rs = ps.executeQuery();
} catch (SQLException e) {
System.out.println("❌ 执行查询失败");
e.printStackTrace();
}
return rs;
}
/**
* //
*/
public int executeUpdate(String sql, Object... params) {
try {
ps = getConnection().prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
ps.setObject(i + 1, params[i]);
}
int rows = ps.executeUpdate();
System.out.println("✅ 执行更新成功,影响行数:" + rows);
return rows;
} catch (SQLException e) {
System.out.println("❌ 执行更新失败");
e.printStackTrace();
return -1;
}
}
/**
*
*/
public void closeResources() {
try {
if (rs != null) rs.close();
if (ps != null) ps.close();
if (conn != null) conn.close();
System.out.println("✅ 资源关闭成功");
} catch (SQLException e) {
System.out.println("❌ 资源关闭失败");
e.printStackTrace();
}
}
/**
*
*/
public static void main(String[] args) {
// 1. 创建DbUtil实例解决静态调用非静态方法的核心
DbUtil dbUtil = new DbUtil();
// 2. 测试数据库连接
System.out.println("===== 测试1数据库连接 =====");
Connection conn = dbUtil.getConnection();
if (conn != null) {
System.out.println("✅ 数据库连接成功!");
} else {
System.out.println("❌ 数据库连接失败!");
return; // 连接失败,后续测试无需执行
}
// 3. 测试插入数据往你的customer_cstatm2023210480表插测试数据
System.out.println("\n===== 测试2插入数据 =====");
String insertSql = "INSERT INTO customer_cstatm2023210480 (cid, cname, cpin, ldatetime, lftimes, lstimes) VALUES (?, ?, ?, ?, ?, ?)";
// 插入你的学号数据避免重复插入可改cid为2023210481
dbUtil.executeUpdate(insertSql, "2023210481", "倪思羽测试", "123456", new Date(System.currentTimeMillis()), 0, 0);
// 4. 测试查询数据(查询刚插入的表数据)
System.out.println("\n===== 测试3查询数据 =====");
String querySql = "SELECT * FROM customer_cstatm2023210480 WHERE cid = ?";
ResultSet rs = dbUtil.executeQuery(querySql, "2023210481");
try {
if (rs.next()) {
System.out.println("✅ 查询到数据:");
System.out.println("账号(cid)" + rs.getString("cid"));
System.out.println("姓名(cname)" + rs.getString("cname"));
System.out.println("密码(cpin)" + rs.getString("cpin"));
System.out.println("失败次数(lftimes)" + rs.getInt("lftimes"));
} else {
System.out.println("❌ 未查询到指定数据");
}
} catch (SQLException e) {
System.out.println("❌ 查询数据解析失败");
e.printStackTrace();
}
// 5. 关闭资源
System.out.println("\n===== 测试4关闭资源 =====");
dbUtil.closeResources();
}
}
Loading…
Cancel
Save