代码如下:
Properties prop = new Properties();
ClassLoader cl = Demo.class.getClassLoader();
URL res = cl.getResource("test.properties");
String path = res.getPath();
try {
prop.load(new FileReader(path));
} catch (IOException e) {
e.printStackTrace();
}
String url = prop.getProperty("url");
String user = prop.getProperty("user");
String password = prop.getProperty("password");
Connection connect = DriverManager.getConnection(url, user, password);
Statement state = connect.createStatement();
ResultSet resultSet = state.executeQuery("select * from emp");
while(resultSet.next()){
int id = resultSet.getInt(1);
System.out.println(id);
}
state.close();
connect.close();
test.properties如果放在src外面和src同级,则会在String path = res.getPath();报错NullPointerException
test.properties如果放在src内,则会有如下报错:
java.io.FileNotFoundException: D:\1.%e5%9e%83%e5%9c%be%e7%ab%99\JAVAWEB\JDBC\out\production\JDBC\test.properties (系统找不到指定的路径。)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
at java.base/java.io.FileInputStream.(FileInputStream.java:157)
at java.base/java.io.FileInputStream.(FileInputStream.java:112)
at java.base/java.io.FileReader.(FileReader.java:60)
at DQL查询练习2.Demo.main(Demo.java:59)
Exception in thread "main" java.sql.SQLException: The url cannot be null
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:660)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
at DQL查询练习2.Demo.main(Demo.java:67)
67行是:Connection connect = DriverManager.getConnection(url, user, password);
59行是:prop.load(new FileReader(path));
我本想用getResource("")获取项目路径的再通过+"\src\test.properties"组合的,结果这条路好像行不通