工具类:
package com.example.demo.utils;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
public class JDBCUtils {
//1 构造私有
private JDBCUtils() {
}
//2 定义变量参数
private static String driverClass;
private static String url;
private static String username;
private static String password;
//3 获取properties中的参数
private static void getConfig() {
Properties pp = new Properties();
try {
InputStream in = JDBCUtils.class.getClassLoader().getResourceAsStream("static/jdbc.properties");
pp.load(in);
driverClass = pp.getProperty("driverClass");
url = pp.getProperty("url");
username = pp.getProperty("username");
password = pp.getProperty("password");
} catch (IOException e) {
e.printStackTrace();
}
}
//4 静态代码块注册驱动
static {
getConfig();
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//5 获取连接对象
public static Connection getConnection() {
try {
return DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
//6 释放资源
public static void release(Connection conn, Statement stat, ResultSet rs) {
try {
if (rs != null) {
rs.close();
rs = null;//GC会优先回收null
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
properties文件:
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=root