今天在写web的时候,代码用的是ClassLoader.getSystemClassLoader().getResourceAsStream(“jdbc.properties”);
平时用的也都是这个,各种获取连接然后测试查询,增删改都没问题,写到Servlet这开始出问题,一直报空指针异常,然后因为前面测试类都对了,所以我不可能去怀疑连接出问题,然后查了半天没看出来,后来问了盆友才知道他们用的是JdbcUtils.class.getClassLoader().getResourceAsStream(“jdbc.properties”);
我就纳了闷,这构造器不都是拿系统给的么,为什么我这会错呢。。。
代码如下
package cn.zsp.utils;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
public class JdbcUtils {
private static DataSource ds;
static{
try {
Properties pro=new Properties();
InputStream is = JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
pro.load(is);
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
Connection conn = null;
try {
conn = ds.getConnection();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return conn;
}
public static void close(Connection conn) {
if (conn != null) {
try {
conn.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}