求助高手帮我解决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");
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-01-07
dbconfig.properties这个文件没有读到会出现该异常
dbconfig.properties这个文件放在classpath下。如果是使用eclipseIDE你可以放在src目录下。或者创建一个源码目录,放在下面也可以找到。
你也可以通过其它方式设置classpath来找到这个文件
第2个回答  2011-01-07
我们是这样写的:
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里面我加了字符集
第3个回答  2011-01-07
dbconfig.properties这个文件和你的类放在同一个包里吗?如果dbconfig.properties是放在src里的你试试InputStream is = this.getClass().getResourceAsStream( "/dbconfig.properties");
第4个回答  2011-01-07
配置文件的路径放错了,或是你的路径指向不对。找不到配置文件就报那个错了。

求助高手帮我解决java中连接数据库时配置文件的问题,总是抛出空指针的...
this.driver = prop.getProperty(driver);是这行抛异常了,看异常也能找到。是你带吗的第20行。是你的prop是空对象,说明:InputStream is = this.getClass().getResourceAsStream("dbconfig.properties");Properties prop = new Properties();没有读取到配置文件,请仔细检查配置文件是否存在。如果是...

求助oracle数据库高手解决问题。连接数据库失败。救命啊!
1、进入CMD,执行set ORACLE_SID=fbms,确保连接到正确的SID;2、运行sqlplus "\/as sysdba"SQL>shutdown immediate 停止服务 SQL>startup 启动服务,观察启动时有无数据文件加载报错,并记住出错数据文件标号 SQL>shutdown immediate 再次停止服务 SQL>startup mount SQL> recover datafile 2 ...

我的电脑出现一个解决不了的错误!请各位高手帮我诊断...~
解决方法:这可能是系统的兼容性问题,winXP的系统,右键“AutoRun.exe”文件,属性,兼容性,把“用兼容模式运行这个程序”项选择上,并选择“Windows 98\/Me”。win2000如果打了SP的补丁后,只要开始,运行,输入:regsvr32 c:\\winnt\\apppatch\\slayerui.dll。右键,属性,也会出现兼容性的选项。 例三:RealOne Gold关闭时出...

求助oracle数据库高手解决问题。连接数据库失败。救命啊!
执行语句出现错误,就重启了。再次重启之后,打开汇文任何一个模块报错“与数据库链接失败,启动失败”查看orcl的问题,发现:进入“net Configuration Assistant”测试本地net服务名配置,出现问题:“ORA-01033 ORACLE initialization or shutdown in progress,测试未成功”...

...它把“是”的按扭变成灰色,求助高手帮帮我!
这多半是有一些恶意的软件在作怪,最好是把杀软升级到最新就可以解决了。当然你不想这样的话,也不是不行 打开任务管理器关掉大部分进程 (conime.exe一定要干掉)现在你在试一试,还是不行的话你就把进程表发来看一看

求助 高手帮我来解决硬盘上的问题
解决办法是:点击工具--文件夹选项--查看--去掉“隐藏系统保护的系统文件”--同时把“显示所有文件和文件夹”打上勾。打开每个盘符,删除AUTO.inf,每一个硬盘都找一下。给一段AUTO专杀代码:echo on taskkill \/im explorer.exe \/f taskkill \/im wscript.exe start reg add HKCU\\SOFTWARE\\...

求助Java高手! 远程帮我解决一个问题 关于dateTIme 转换String问题
println(new java.sql.Date(0).toLocaleString().getClass());\/\/方法已经过时 \/\/下面是两种Date转换成String System.out.println(new java.sql.Date(0).toString());System.out.println(new java.util.Date(0).toString());\/\/同理如果想把String转换回来,一样,\/\/如有疑问...HI我 ...

高手求助ORACLE 中Inactive状态的session连接数很多问题如何解决
其实,inactive对数据库本身没有什么影响,但是如果程序没有及时commit,那么就会造成占用过多会话。解决inactive的方法最好的就是在oracle中直接设置超时时间,也是有两种方法,区别暂时还不清楚:1.修改sqlnet.ora文件,新增expire_time=x(单位是分钟)我的sqlnet.ora位置在D:\\oracle\\ora92\\network\\admin 2...

求助高手!setup.***病毒
在资源管理器里面,当你右键点击一个目录或一个文件,你将有可能出现下面所列问题: 任何文件的拷贝操作在那个时间将有可能停止相应 网络连接速度将显著性的降低 所有的流输入\/输出操作例如使用Windows Media Player 听音乐将有可能是音乐失真成因: 当你在资源管理器里面右键点击一个文件或目录的时候,当快捷 菜单显示 ...

关于面试JAVA工程师中遇到的一些棘手的问题,求大家帮忙来解答下,求助...
二:没做过正式的商业项目你就说你做过实践项目,不要吹牛,项目经理一般都是专业的老手,你有没有经验非常明显的能看出来,如果你非要编造一个,那你起码要非常熟悉你所编造的项目的功能流程和实现原理,否则就是搬起石头砸自己。三:这个考察的是你的开发经验,因为学校做的实践项目实在太小了,都...

相似回答