我有一个使用属性文件建立数据库连接的java类。为了将数据插入到表中,我编写了另一个Java类,它从第一个类中获取连接对象。尝试将连接对象传递给另一个java类时出现NullPointerException
这里是连接类调试时
package feedback;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
public class DbConnection {
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/online_feedback";
public static Connection con;
static String properties[] = new String[2];
public static Connection connectDB() {
try {
Class.forName(driver);
con = DriverManager.getConnection(url, properties[0], properties[1]);
System.out.println("Conn obj :::" + con);
System.out.println(properties[0]);
System.out.println(properties[1]);
} catch (ClassNotFoundException ex) {
Logger.getLogger(DbConnection.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(DbConnection.class.getName()).log(Level.SEVERE, null, ex);
}
return con;
}
public void loadProp() {
Properties prop = new Properties();
InputStream input = this.getClass().getResourceAsStream("connection.properties");
try {
prop.load(input);
} catch (IOException ex) {
Logger.getLogger(DbConnection.class.getName()).log(Level.SEVERE, null, ex);
System.out.println("exception " + ex);
}
String username = prop.getProperty("username");
String password = prop.getProperty("password");
properties[0] = username;
properties[1] = password;
System.out.println(properties[0]);
System.out.println(properties[1]);
}
public static void main(String[] args) {
DbConnection d = new DbConnection();
d.loadProp();
Connection cont = d.connectDB();
System.out.println("okay " + cont);
}
}
此类工作正常。它打印用户名,密码以及连接对象。
这里是第二类
package feedback;
import java.sql.Connection;
public class Test {
public static void main (String[] args){
Connection c = DbConnection.connectDB();
System.out.println("connected " + c);
}
}
问题是它打印null作为连接对象。
请帮我找出提前
你有没有检查你的日志? – 2015-01-15 16:29:01