package com.zhiyou100.util;
import java.io.FileNotFoundException;
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 enum DBUtil {
INSTANCE; // 一个枚举实例,只能被生成一次,保证了单例的实现。
/*
变量一般定义为private,外部只能通过 DBUtil.INSTANCE.属性 的方法获得
*/
private String databaseName;
private String url;
private String username;
private String password;
// 构造方法里面的内容只会被执行一次,不管你调用多少次DBUtil.INSTANCE 对象,因为DBUtil.INSTANCE对象只被生成了一次
private DBUtil() {
try (InputStream is = DBUtil.class.getClassLoader().getResourceAsStream("data.properties");){
Properties properties = new Properties();
properties.load(is);
// 根据properties配置文件获取的 JDBC 配置数据
databaseName = properties.getProperty("databaseName");
url = properties.getProperty("url") + databaseName;
username = properties.getProperty("username");
password = properties.getProperty("password");
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
// 连接驱动的方法需要执行跟多次,作为一个普通方法就行
public Connection getConnection() {
Connection connection = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
}
单例模式下实现的JDBC工具类
最新推荐文章于 2024-02-18 10:20:55 发布