public class JDBCUtils {
private static DataSource druidDataSource;
static {
try {
//FileInputStream fileInputStream = new FileInputStream(new File("../src/druid.properties"));
InputStream inputStream = JDBCUtils.class.getClassLoader().getSystemResourceAsStream("druid.properties");
Properties properties = new Properties();
properties.load(inputStream);
druidDataSource = DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws Exception {
return druidDataSource.getConnection();
}
//获取连接池对象
public static DataSource getDataSource(){
return druidDataSource;
}
}
java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:434)
at java.util.Properties.load0(Properties.java:353)
at java.util.Properties.load(Properties.java:341)
at cn.itcast.util.JDBCUtils.(JDBCUtils.java:26)
at cn.itcast.dao.AdminDAO.(AdminDAO.java:23)
at cn.itcast.web.servlet.LoginServlet.doPost(LoginServlet.java:24)
at cn.itcast.web.servlet.LoginServlet.doGet(LoginServlet.java:40)
空指针问题,你打个断点一步步调试看那个值是空的。
InputStream inputStream = JDBCUtils.class.getClassLoader().getSystemResourceAsStream("druid.properties");
这个获取文件的方法可能有问题,确保 这个 properties 文件在 src 直接目录下,然后编译后在类路径下有。
看报错异常堆栈啊,哪一行抛的npe,就看这一行为什么引用是空的。