【发布时间】:2021-10-22 17:34:42
【问题描述】:
我想访问我创建的表并在 Eclipse 控制台中打印它。但是,我不断收到一条错误消息,内容如下:
java.lang.NullPointerException:无法调用“java.sql.Connection.createStatement()”,因为“databaseSQL.conAdministrator”为空。
我还上传了一个jar文件:mysql-connector-java-8.0.26.jar
但是,我的openDataBaseConnection 方法返回数据库已连接。
我的代码:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.*;
import java.sql.DriverManager;
public class databaseSQL {
private static Connection conAdministrator;
public static void main(String[] args) {
openDataBaseConnection();
LoadListFromDatabase();
}
public static void LoadListFromDatabase() {
String strConnect = "jdbc:mysql://localhost:3306/DBexample";
String sql = "SELECT * FROM employeeInfo";
Statement sqlCommand = null;
ResultSet rstTSource = null;
openDataBaseConnection();
try {
sqlCommand = conAdministrator.createStatement();
rstTSource = sqlCommand.executeQuery(sql);
while(rstTSource.next()) {
String name = rstTSource.getString(1);
System.out.println(name);
}
} catch(Exception e) {
System.out.println(e);
}
}
public static boolean openDataBaseConnection() {
Connection conAdministrator = null;
String strConnect = "";
boolean blnResult = false;
try {
strConnect = "jdbc:mysql://localhost:3306/DBexample";
conAdministrator = (Connection)DriverManager.getConnection(strConnect, "root", "Classof2017!");
if(conAdministrator != null) {
System.out.println("Database is Connected!");
blnResult = true;
}
} catch(Exception e) {
System.out.println("Not Connected!");
}
return blnResult;
}
public static boolean closeDataBaseConnection() {
boolean blnResult = false;
try {
if(conAdministrator != null) {
if(conAdministrator.isClosed() == false) {
conAdministrator.close();
conAdministrator = null;
}
}
blnResult = true;
System.out.println("Database is Closed.");
} catch(Exception e) {
System.out.println(e);
}
return blnResult;
}
}
这是我试图在控制台中显示的 SQL 表:
USE DBexample;
CREATE TABLE employeeInfo(intEmployeeID INT,
strFirstName VARCHAR(20),
strLastName VARCHAR(20),
strHomePhone VARCHAR(20),
strEmail VARCHAR(30),
dtmDateOfBirth DATE);
INSERT INTO employeeInfo VALUE('123000','Brittney', 'Pugh', '(513)738-4730', 'pughb@email.com', '1998-12-01');
INSERT INTO employeeInfo VALUE('246000', 'Emilee', 'Peters', '(513)222-9876', 'emileep@email.com', '1990-05-21');
INSERT INTO employeeInfo VALUE('689000', 'Sally', 'Jenkins', '(513)456-2590', 'jenkinssally@email.com', '1985-03-23');
INSERT INTO employeeInfo VALUE('537000', 'John', 'Smith', '(513)889-0754', 'SmithJ@email.com','1995-07-07');
SELECT * FROM employeeInfo;
【问题讨论】: