在不使用第三方工具类的情况下:
/*
* 编写JDBC的工具类,获取数据库的连接
* 采用读取配置文件的方式
* 读取配置文件,获取连接,都只需要进行一次,因此使用静态代码块
*/
public class JDBCUtilsConfig {
//将变量抽取到成员位置
private static Connection con;
private static String driverClass;
private static String url;
private static String username;
private static String password;
static {
try {
readConfig();
Class.forName(driverClass);
con = DriverManager.getConnection(url, username, password);
}catch(Exception ex) {
//若读取配置文件失败或连接数据库失败,则没有必要再进行其他操作
throw new RuntimeException("数据库连接失败");
}
}
/*
* 将读取配置文件的代码抽取到一个私有方法中,减少静态代码块中代码量
*/
private static void readConfig() throws Exception{
//采用类的加载器形式获取文件的输入流,这样的形式更加规范
InputStream in = JDBCUtilsConfig.class.getClassLoader().getResourceAsStream("database.properties");
Properties pro = new Properties();
pro.load(in);
driverClass = pro.getProperty("driverClass");
url = pro.getProperty("url");
username = pro.getProperty("username");
password = pro.getProperty("password");
}
public static Connection getConnection() {
return con;
}
}