读取数据库连接配置文件,连接数据库报空指针错误问题

错误主要发生在InputStream输入流读取配置文件的方式。

比如:

//方式一
InputStream is=ClassLoader.getSystemClassLoader().getResourceAsStream("jdbcConnection.properties");
//方式二
InputStream is=JdbcUtils.class.getClassLoader().getResourceAsStream("jdbcConnection.properties");

其中,jdbcConnection.properties为配置文件名。

`JdbcUtils.class.getClassLoader().getResourceAsStream("jdbcConnection.properties")` 和 `ClassLoader.getSystemClassLoader().getResourceAsStream("jdbcConnection.properties")` 有如下区别:

1. `JdbcUtils.class.getClassLoader().getResourceAsStream("jdbcConnection.properties")` 是从当前类的类加载器中获取资源,而 `ClassLoader.getSystemClassLoader().getResourceAsStream("jdbcConnection.properties")` 是从系统类加载器中获取资源。
2. `JdbcUtils.class.getClassLoader().getResourceAsStream("jdbcConnection.properties")` 可以加载`jdbcConnection.properties`文件放在类路径中任意一个位置下,但是`ClassLoader.getSystemClassLoader().getResourceAsStream("jdbcConnection.properties")`只能加载类路径下最顶层的`jdbcConnection.properties`文件。
3. 如果多个类加载器加载同一个文件,它们所加载的文件不是同一个文件,也就是说,即使文件内容相同,但是由于不同的类加载器加载,它们对应的 `getResourceAsStream()` 方法所返回的 InputStream 实例也是不同的。

因此,如果`jdbcConnection.properties`文件位于类路径中的某个子路径或者需要使用自定义的类加载器来加载,那么就应该使用 `JdbcUtils.class.getClassLoader().getResourceAsStream("jdbcConnection.properties")` 来获取资源。否则,使用 `ClassLoader.getSystemClassLoader().getResourceAsStream("jdbcConnection.properties")` 来方便的获取资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值