为了简化每次连接的重复步骤,写了此工具类。
1.首先,需要在 src 目录下建立一个jdbc.properties 文件,内容如下
(jdbc 8.0 以下版本)
driver=com.mysql.jdbc.Driver
url=jdbc:mysql:///db3
user=root
password=root
(jdbc 8.0 以上版本)
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/union?useSSL=false&serverTimezone=UTC
user=root
password=root
2.接着,编写一个 JDBCUtils 的工具类,内容如下:
(classloader 是一个类加载器,能自动获取某个文件的真实路径)
import java.io.FileReader;
import java.net.URL;
import java.sql.*;
import java.util.Properties;
public class JDBCUtils {
private static String driver;
private static String url;
private static String user;
private static String password;
//静态字符块,自动加载资源文件
static {
//获取src路径下的文件的方式--->ClassLoader 类加载器
ClassLoader classLoader = JDBCUtils.class.getClassLoader();
//获取资源对象(得到一个 url 对象)
URL res = classLoader.getResource("jdbc.properties");
//得到资源真实路径
String path = res.getPath();
//创建Properties类型的对象
Properties p =new Properties();
try {
//加载资源文件
p.load(new FileReader(path));
driver = p.getProperty("driver");
url = p.getProperty("url");
user = p.getProperty("user");
password = p.getProperty("password");
//加载驱动
Class.forName(driver);
System.out.println("驱动加载成功!");
} catch (Exception e) {
System.out.println("驱动加载失败!");
e.printStackTrace();
}
}
//获得连接对象的方法
public static Connection getConnection() {
try{
System.out.println("数据库连接成功");
return DriverManager.getConnection(url, user, password);
}
catch(Exception e) {
System.out.println("数据库连接失败");
e.printStackTrace();
}
return null;
}
//释放连接资源
public static void close(Connection conn, Statement statement,ResultSet result) {
try {
if(result!=null) {
result.close();
result=null;
}
if(statement!= null) {
statement.close();
statement=null;
}
if(conn!=null) {
conn.close();
conn=null;
}
}
catch(Exception e) {
e.printStackTrace();
}
}
}