使用JDBC遇到的问题

属性文件:jdbc.properties(在src目录中)

driverClass = oracle.jdbc.driver.OracleDriver
url = jdbc:oracle:thin:@10.131.114.71:1521:eftest
user = orcl
password = orcl

问题一:使用如下语句获取不到属性文件jdbc.properties中的值,JUnit报空指针异常

InputStream in = JDBCUtil.class.getResourceAsStream("jdbc.properties");
		Properties prop = new Properties();
		prop.load(in);
		String driver = prop.getProperty("driverClass");
		System.out.println(driver);
		String url = prop.getProperty("url");
		String user = prop.getProperty("user");
		String password = prop.getProperty("password");
		System.out.println(password);

解决思路:

(1)可能需要将属性文件和获取属性文件的类放在同一个包内

测试结果:可以获取到属性值

(2)于是猜想:报空指针异常是不是没找到这个属性文件,换句话说getResourceAsStream(String name)这个方法需要传入的这个name的参数是属性文件所在的目录,而不只是属性名?

测试:将属性文件重新移到src目录下,在InputStream in = JDBCUtil.class.getResourceAsStream("/jdbc.properties");

中的属性文件名前加“/”,结果可以成功获取到属性值。

问题二:可以获取到驱动程序也将驱动加到了classpath中,但是测试获取数据库连接的时候,

报java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver  异常

解决思路:

将从属性文件中获取到的driverClass属性值打印到控制台中后,无意间全选之后发现打印到控制台上的字符串有空格,于是发现jdbc.properties中确实有空格,删除空格后,成功获取到了数据库连接。

猜你喜欢

转载自zxq1007097830.iteye.com/blog/2380207