MySQL数据库读写工具类是指用于简化与MySQL数据库进行交互的代码封装。这类工具类通常提供了一系列方法,用于执行SQL查询、插入、更新和删除操作,同时处理数据库连接、事务管理以及错误处理等。
原因:可能是由于长时间没有进行数据库操作,导致连接被服务器关闭。
解决方法:
maxIdleTime
参数,设置合适的空闲时间。原因:直接拼接SQL语句容易导致SQL注入攻击。
解决方法:
原因:未正确关闭数据库连接,导致连接资源被耗尽。
解决方法:
import java.sql.*;
public class MySQLUtil {
private static final String URL = "jdbc:mysql://localhost:3306/mydatabase";
private static final String USER = "username";
private static final String PASSWORD = "password";
static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new RuntimeException("Failed to load MySQL JDBC driver", e);
}
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
public static void close(Connection conn, Statement stmt, ResultSet rs) {
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void executeQuery(String sql, Object... params) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = getConnection();
pstmt = conn.prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
pstmt.setObject(i + 1, params[i]);
}
rs = pstmt.executeQuery();
// 处理结果集
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(conn, pstmt, rs);
}
}
}
领取专属 10元无门槛券
手把手带您无忧上云