一.分析
根据上一篇Day1_JDBC——java连接mysql+提取配置,我们知道获取数据库连接的步骤无非就是那么几个步骤,但是如果每一次获取数据库连接都写这几行代码,那么就造成了日后维护困难的局面。
为了简化代码,方便日后的维护工作,我们通常将获取数据库的连接和释放数据库的连接封装成方法。每当我们需要使用数据库操作的时候,只需调用这个已经封装好的方法即可。
二.例子
注意:info.properties文件要放在src文件夹里面。下图是本java project的结构图
info.properties
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/myemployees?useSSL=false
user=root
password=123456
JDBCUtils.java
package com.atguigu.utils;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class JDBCUtils {
private static String driverClass;
private static String url;
private static String user;
private static String password;
/*只进行加载一次数据
*
*/
static {
//1.提取配置文件
Properties info = new Properties();
//使用当前类的类加载器去类路径下加载配置文件info.properties并转换为输入流
InputStream is = JDBCUtils.class
.getClassLoader()
.getResourceAsStream("info.properties");
try {
info.load(is);
driverClass = info.getProperty("driverClass");
url = info.getProperty("url");
user = info.getProperty("user");
password = info.getProperty("password");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*
* 获取数据库连接的方法
*/
public static Connection getConn() {
Connection conn = null;
try {
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
/*释放数据库连接
*
*/
public static void closeConn(Connection conn) {
if(conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}