import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
public class JdbcUtilsConfig {
//编写JDBC的工具类,获取连接数据库的对象
//采用读取配置文件的方式
private static Connection con;
private static String url;
private static String driverClass;
private static String username;
private static String password;
//构造私有,不让创建对象
private JdbcUtilsConfig() {}
//对读取配置文件的动作,操作一次就好,将这些代码封装到static代码块中
static {
try {
readConfig();
Class.forName(driverClass);
con=DriverManager.getConnection(url,username,password);
} catch (Exception e) {
throw new RuntimeException("数据库连接失败!");
}
}
//将读取配置文件的过程抽取出来,成为一个方法,并且私有,只给本类自己用,简化static中代码
private static void readConfig() throws IOException {
//1首先获得类的字节码对象 ,调用方法获得类加载器, 获得指定资源输入流
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;
}
}
database.properties配置文件内容
配置文件要求:
在src下的配置文件会在创建的时候,自动拷贝到bin目录下 ,在src下对配置文件的修改,会重新拷贝到bin下,覆盖原来的
采用键值对形式,一行一对,格式:key=value;
注:key可以自定义,多个单词,用点分隔,value值不支持中文,如需要使用非英文字符,需要进行unicode转换
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/stdb
username=root
password=root