目的:每次使用JDBC的时候都要书写冗长的代码段,不符合复用的理念,于是要单独写一个类,将通用的JDBC操作写到一个类中,便于重复使用和精简代码。
配置文件:db.properties
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mysql?useSSL=flase&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
user=root
password=123456
JdbcUtil
public class JdbcUtil {
private static String url;
private static String user;
private static String password;
private static String driver;
static {
try {
Properties prop = new Properties();
ClassLoader classLoader = JdbcUtil.class.getClassLoader();
URL res = classLoader.getResource("db.properties");
String path = res.getPath();
prop.load(new FileReader(path));
url=prop.getProperty("url");
user=prop.getProperty("user");
password=prop.getProperty("password");
driver=prop.getProperty("driver");
Class.forName(driver);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url,user,password);
}
public static void close(Statement stmt,Connection conn){
if(stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close(ResultSet set,Statement stmt,Connection conn) {
if (set != null) {
try {
set.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}