You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
library_manage_system/src/javabean/Base.java

136 lines
4.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package javabean;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Base {
// 数据库连接信息
private static String driver = "com.mysql.cj.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/library?&useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8";
private static String username = "root";
private static String password = "root";
/**
* 获取数据库连接
*
* @return 返回数据库连接对象
* @throws ClassNotFoundException 如果未找到JDBC驱动类
*/
public static Connection getConnection() throws ClassNotFoundException {
Connection connection = null;
try {
// 加载数据库驱动
Class.forName(driver);
// 获取数据库连接
connection = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
/**
* 公共查询方法用于执行SELECT语句
*
* @param connection 数据库连接对象
* @param preparedStatement 执行查询的PreparedStatement对象
* @param resultSet 查询结果集
* @param sql 执行的SQL语句
* @param params SQL语句的参数值可以为null
* @return 返回查询结果集
* @throws SQLException 如果SQL执行过程中发生错误
*/
public static ResultSet executequery(Connection connection, PreparedStatement preparedStatement,
ResultSet resultSet, String sql, Object[] params) throws SQLException {
if (preparedStatement == null) {
// 如果PreparedStatement为null则创建新的PreparedStatement对象
preparedStatement = connection.prepareStatement(sql);
}
// 设置SQL语句中的参数
for (int i = 0; params != null && i < params.length; i++) {
preparedStatement.setObject(i + 1, params[i]);
}
// 执行查询并返回结果集
resultSet = preparedStatement.executeQuery();
return resultSet;
}
/**
* 公共修改方法用于执行INSERT、UPDATE或DELETE语句
*
* @param connection 数据库连接对象
* @param preparedStatement 执行修改的PreparedStatement对象
* @param sql 执行的SQL语句
* @param params SQL语句的参数值可以为null
* @return 返回受影响的行数
* @throws SQLException 如果SQL执行过程中发生错误
*/
public static int executeUpdate(Connection connection, PreparedStatement preparedStatement, String sql,
Object[] params) throws SQLException {
if (preparedStatement == null) {
// 如果PreparedStatement为null则创建新的PreparedStatement对象
preparedStatement = connection.prepareStatement(sql);
}
// 设置SQL语句中的参数
for (int i = 0; params != null && i < params.length; i++) {
preparedStatement.setObject(i + 1, params[i]);
}
// 执行更新语句,返回更新的行数
int updateRows = preparedStatement.executeUpdate();
return updateRows;
}
/**
* 释放数据库连接相关的资源
*
* @param connection 数据库连接对象
* @param preparedStatement 执行的PreparedStatement对象
* @param resultSet 查询结果集
* @return 如果资源成功关闭返回true否则返回false
* @throws SQLException 如果关闭资源时发生错误
*/
public static boolean closeResource(Connection connection, PreparedStatement preparedStatement, ResultSet resultSet)
throws SQLException {
boolean flag = true;
// 关闭ResultSet资源
if (resultSet != null) {
try {
resultSet.close();
resultSet = null;
} catch (SQLException e) {
e.printStackTrace();
flag = false;
}
}
// 关闭PreparedStatement资源
if (preparedStatement != null) {
try {
preparedStatement.close();
preparedStatement = null;
} catch (SQLException e) {
e.printStackTrace();
flag = false;
}
}
// 关闭数据库连接资源
if (connection != null) {
try {
connection.close();
connection = null;
} catch (SQLException e) {
e.printStackTrace();
flag = false;
}
}
// 返回资源关闭的状态
return flag;
}
}