求助高手帮我解决java中连接数据库时配置文件的问题,总是抛出空指针的异常
这是我的DBUtil.java文件用来连接数据库和读取配置文件packagecom.lore.db;importjava.sql.*;importjava.util.*;...
这是我的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 展开
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 展开
5个回答
展开全部
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");
是这行抛异常了,看异常也能找到。是你带吗的第20行。
是你的prop是空对象,说明:
InputStream is = this.getClass().getResourceAsStream(
"dbconfig.properties");
Properties prop = new Properties();
没有读取到配置文件,请仔细检查配置文件是否存在。
如果是在src根目录里 加
InputStream is = this.getClass().getResourceAsStream(
"classpath:dbconfig.properties");
展开全部
dbconfig.properties这个文件没有读到会出现该异常
dbconfig.properties这个文件放在classpath下。如果是使用eclipseIDE你可以放在src目录下。或者创建一个源码目录,放在下面也可以找到。
你也可以通过其它方式设置classpath来找到这个文件
dbconfig.properties这个文件放在classpath下。如果是使用eclipseIDE你可以放在src目录下。或者创建一个源码目录,放在下面也可以找到。
你也可以通过其它方式设置classpath来找到这个文件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我们是这样写的:
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里面我加了字符集
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里面我加了字符集
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
dbconfig.properties这个文件和你的类放在同一个包里吗?如果dbconfig.properties是放在src里的你试试InputStream is = this.getClass().getResourceAsStream( "/dbconfig.properties");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
配置文件的路径放错了,或是你的路径指向不对。找不到配置文件就报那个错了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询