在Javaweb中读取properties配置文件的路径和在Java中是不一样的。
如下图,properties文件在JavaWeb中的位置:src/db.properties
这是JavaWeb输出后的实际路径,也是我们需要的路径
在控制打印结果即是此路径:
本代码主要是在Dao类中获取配置文件的路径信息,然后获取配置文件的内容,即是在非Servlet类中获取路径。
核心代码如下:
InputStream resourceAsStream = DBUtils.class.getClassLoader().getResourceAsStream("db.properties");
System.out.println("普通类中获取:"+DBUtils.class.getClassLoader().getResource("db.properties"));// 主要是测试,打印db.properties的完整路径
完整代码:
/**
* 获取数据库连接对象
*
* @return 返回数据库连接对象
*/
public static Connection getConnection() {
Connection connection = null;
try {
// 加载配置文件
Properties prop = new Properties();
InputStream resourceAsStream = DBUtils.class.getClassLoader().getResourceAsStream("db.properties");
// System.out.println("普通类中获取:" + DBUtils.class.getClassLoader().getResource("db.properties"));
prop.load(resourceAsStream);
// 加载数据库驱动
Class.forName(prop.get("jdbc.driverName").toString());
// 获取连接对象
connection = DriverManager.getConnection(prop.get("jdbc.url").toString(), prop.get("jdbc.user").toString(), prop.get("jdbc.password").toString());
} catch (ClassNotFoundException | SQLException | IOException e) {
e.printStackTrace();
}
return connection;
}