求助高手帮我解决java中连接数据库时配置文件的问题,总是抛出空指针的异常

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助高手帮我解决java中连接数据库时配置文件的问题,总是抛出空指针的异常相关的知识,希望对你有一定的参考价值。

这是我的DBUtil.java文件 用来连接数据库和读取配置文件
package com.lore.db;

import java.sql.*;
import java.util.*;
import java.io.*;

public class DBUtil
private String driver;
private String url;
private String uid;
private String pwd;

public void config()
try
InputStream is = this.getClass().getResourceAsStream(
"dbconfig.properties");
Properties prop = new Properties();

prop.load(is);
this.driver = prop.getProperty(driver);
System.out.print(driver);
this.url = prop.getProperty(url);
System.out.print(url);
this.uid = prop.getProperty(uid);
System.out.print(uid);
this.pwd = prop.getProperty(pwd);
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();



public Connection getConn()
Connection conn = null;

try
this.config();
Class.forName(driver);
conn = DriverManager.getConnection(url, uid, pwd);

catch (Exception ex)
ex.printStackTrace();

return conn;


public static void main(String arg[])
DBUtil db = new DBUtil();
System.out.println(db.getConn());




这个是我的配置文件dbconfig.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/user
uid=root
pwd=olcp
数据库名 用户名 密码都没错 但是一运行就会报空指针的错误 下面是报的错
java.lang.NullPointerException
at java.util.Hashtable.get(Hashtable.java:334)
at java.util.Properties.getProperty(Properties.java:932)
at com.lore.db.DBUtil.config(DBUtil.java:20)
at com.lore.db.DBUtil.getConn(DBUtil.java:37)
at com.lore.db.DBUtil.main(DBUtil.java:49)
null

this.driver = prop.getProperty(driver);
是这行抛异常了,看异常也能找到。是你带吗的第20行。
是你的prop是空对象,说明:
InputStream is = this.getClass().getResourceAsStream(
"dbconfig.properties");
Properties prop = new Properties();
没有读取到配置文件,请仔细检查配置文件是否存在。
如果是在src根目录里 加
InputStream is = this.getClass().getResourceAsStream(
"classpath:dbconfig.properties");
参考技术A dbconfig.properties这个文件没有读到会出现该异常
dbconfig.properties这个文件放在classpath下。如果是使用eclipseIDE你可以放在src目录下。或者创建一个源码目录,放在下面也可以找到。
你也可以通过其它方式设置classpath来找到这个文件
参考技术B 我们是这样写的:
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/score?autoReconnect=true&useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=root
注意url里面我加了字符集
参考技术C dbconfig.properties这个文件和你的类放在同一个包里吗?如果dbconfig.properties是放在src里的你试试InputStream is = this.getClass().getResourceAsStream( "/dbconfig.properties"); 参考技术D 配置文件的路径放错了,或是你的路径指向不对。找不到配置文件就报那个错了。

以上是关于求助高手帮我解决java中连接数据库时配置文件的问题,总是抛出空指针的异常的主要内容,如果未能解决你的问题,请参考以下文章

详细的问PROE的配置文件设置的步骤,请高手们细详呀题说明。

Navicat 8 for Mysql 为啥连接不上啊,高手帮解决一下!谢谢

maven执行sonar报错,求助高手

关于C/C++的一些问题,着急找高手求助

求助高手帮我看一下utils为空或不是对象是怎么回事

帮我把jar包里的一个文件替换了,求助,求助!!!!!! 不是java文件,是一个properties文件,其它文件不变!