出现java.lang.NullPointerException
的问题,找了很久也没有找到解决方案代码如下:
package dao;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* 单例模式的dbutil
* */
public class DBUtil {
private static DBUtil instanceDbUtil = new DBUtil();
private static Properties properties = new Properties();
private static String dbdriver;
private static String dburl;
private static String username;
private static String password;
private Connection connection;
/**
* 初始化配置文件
* */
private DBUtil(){
try {
properties.load(this.getClass().getClassLoader().getResource("conf/db.properties").openStream());
} catch (IOException e) {
System.out.println("配置文件加载失败");
e.printStackTrace();
}catch (Exception e) {
System.out.println("配置文件加载失败");
e.printStackTrace();
}
//设置参数
dbdriver = properties.getProperty("driver");
dburl = properties.getProperty("url");
username = properties.getProperty("userName");
password = properties.getProperty("password");
System.out.println(dbdriver);
}
public void openConnection(){
try {
properties.load(DBUtil.class.getClassLoader().getResourceAsStream("conf/db.properties"));
} catch (IOException e) {
System.out.println("配置文件加载失败");
e.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
}
//设置参数
dbdriver = properties.getProperty("driver");
dburl = properties.getProperty("url");
username = properties.getProperty("userName");
password = properties.getProperty("password");
//创建连接
try {
Class.forName(dbdriver)
.newInstance();
connection = DriverManager.getConnection(dburl, username, password);
System.out.println("connect to " +connection.getCatalog());
} catch (Exception e) {
System.out.println("fail to connect to ...");
e.printStackTrace();
}
}
/**
* 获得dbutil的实例,
*
* */
public static DBUtil getInstance(){
return instanceDbUtil;
}
**************************************未完************************
代码问题出现在
properties.load(this.getClass().getClassLoader().getResource("conf/db.properties").openStream());
找了很久,然后把properties声明的时候去掉static
问题迎刃而解,但是具体为什么是这样我还要再学习一下,后面的博文来解决。