由于 JDBC 连接数据库与关闭资源操作频繁被使用,所以创造工具类 JDBCUtils 将这两个方法进行封装
package com.ftn.jdbc.JDBCutils;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;
//这是一个工具类,完成mysql的连接和关闭资源
public class JDBCUtils {
//定义相关的属性(4个),因为只需要一份,因此我们设为static
private static String user; //用户名
private static String password; //密码
private static String url; //url
private static String driver; //驱动
//在static代码块去初始化
static {
Properties properties = new Properties();
try {
properties.load(new FileInputStream("src\\mysql.properties"));
user = properties.getProperty("user");
password = properties.getProperty("password");
url = properties.getProperty("url");
driver = properties.getProperty("driver");
} catch (IOException e) {
//在实际开发中,可以这样处理编译异常
//1.将编译异常转成运行异常
//2.这时调用者可以选择捕获该异常,也可以选择默认处理该异常,比较方便
throw new RuntimeException(e);
}
}
//获取连接
public static Connection connect(){
try {
return DriverManager.getConnection(url,user,password);
} catch (SQLException e) {
//在实际开发中,可以这样处理编译异常
//1.将编译异常转成运行异常
//2.这时调用者可以选择捕获该异常,也可以选择默认处理该异常,比较方便
throw new RuntimeException(e);
}
}
//关闭资源
//1.关闭 ResultSet 结果集
//2.关闭 Statement 或 PreparedStatement
//3.关闭 Connection
//如果需要关闭资源,就传入对象,否则传入null
public static void close(ResultSet set,Statement statement,Connection connection){
try{
if (set!=null){
set.close();
}if (statement!=null){
statement.close();
}if (connection!=null){
connection.close();
}
}catch (SQLException e){
//1.将编译异常转成运行异常
throw new RuntimeException(e);
}
}
}