使用:props.load(DBUtils.class.getClassLoader().getResourceAsStream("day01/db.properties"));
导入配置文件
使用的是反射机制
.class ///获得Class对象
.class.getClassLoader() ///获得ClassLoader对象
.class.getClassLoader().getResourceAsStream(String name); //获得inputStream对象
所以括号里是inputStream对象 这肯定是不变的
///DBUtils.java
package day02;
import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
public class DBUtils {
private static String driver;
private static String url;
private static String user;
private static String password;
static{
try{
Properties props = new Properties();
//从类路径中加载文件
props.load(DBUtils.class.getClassLoader().getResourceAsStream("day01/db.properties"));
//props.load(new FileInputStream("db.properties"));
driver = props.getProperty("driver");
url = props.getProperty("url");
user = props.getProperty("user");
password = props.getProperty("password");
System.out.println(driver);
System.out.println(url);
System.out.println(user);
Class.forName(driver);
}catch(Exception e){
throw new RuntimeException(e);
}
}
public static Connection openConnection() throws Exception{ //静态方法获得连接
Connection con = DriverManager.getConnection(url,user,password);
return con;
}
}