Java 尝试连接到MySQL时出现NullPointerException
请帮助我确定为什么我总是出现此错误:Java 尝试连接到MySQL时出现NullPointerException,java,jdbc,nullpointerexception,Java,Jdbc,Nullpointerexception,请帮助我确定为什么我总是出现此错误: java.lang.NullPointerException at TaskDAO.TaskDAO.main(TaskDAO.java:34) 注意:DatebaseHelper是一个使用JDBC连接到MySQL的类 import java.sql.SQLException; import java.text.SimpleDateFormat; import TaskManagement.*; public class TaskDAO {
java.lang.NullPointerException
at TaskDAO.TaskDAO.main(TaskDAO.java:34)
注意:DatebaseHelper是一个使用JDBC连接到MySQL的类
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import TaskManagement.*;
public class TaskDAO {
DatabaseHelper help;
public static void main(String[] args) throws InstantiationException,
IllegalAccessException, ClassNotFoundException, SQLException {
TaskDAO taskDAO = new TaskDAO();
int taskID = 6;
String subject = "lau cua";
Status status = Status.Completeted;
Priority priority = Priority.High;
Float percentage = 4f;
String tableName = "tasks";
String startDate = "2012/11/11";
String dueDate = "2012/11/12";
String query = "INSERT INTO "
+ tableName
+ "(taskID,subject,status,priority,percentage,startDate,dueDate)"
+ " VALUES ('" + taskID + "'," + "'" + subject + "'," + "'"
+ status + "'," + "'" + priority + "'," + "'" + percentage
+ "'," + "'" + startDate + "'," + "'" + dueDate + "')";
taskDAO.help.executeQuery(query);
}
}
DatabaseHelper帮助是一个成员变量,因此初始化为null。在main中,您创建了一个TaskDAO,并立即使用它的帮助成员(为null)。您必须使用一些有效的DatabaseHelper初始化帮助。DatabaseHelper帮助是一个成员变量,因此初始化为null。在main中,您创建了一个TaskDAO,并立即使用它的帮助成员(为null)。您必须使用一些有效的DatabaseHelper初始化帮助。帮助为空,因此NPE忘记初始化它
DatabaseHelper help = new DatabaseHelper();
帮助为空,因此NPE忘记初始化它
DatabaseHelper help = new DatabaseHelper();
您正在调用taskDAO.help.executeQueryquery;
但直到有了数据库帮助;是null,因为引用变量在java中默认为null。
所以首先定义DatabaseHelper帮助
然后打电话
taskDAO.help.executeQuery(query);
您正在调用taskDAO.help.executeQueryquery;
但直到有了数据库帮助;是null,因为引用变量在java中默认为null。
所以首先定义DatabaseHelper帮助
然后打电话
taskDAO.help.executeQuery(query);
下面给出了一个从MySQL数据库读取的简单代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class NewClass {
public static void main(String[] args) {
Connection conn = null;
String url = "jdbc:mysql://192.168.100.100:3306/";
String dbName = "databaseName";
Statement stmt = null;
ResultSet result = null;
String driver = "com.mysql.jdbc.Driver";
String databaseUserName = "admin";
String databasePassword = "root";
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url + dbName, databaseUserName, databasePassword);
stmt = conn.createStatement();
result = null;
String password,username;
result = stmt.executeQuery("select * from userTable where username ='user1' ");
if(!result.isBeforeFirst()){
System.out.println("resultset contin no rows");
}
while (result.next()) {
username=result.getString("username");
password = result.getString("password");
System.out.println(username+" "+password);
}
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
下面给出了一个从MySQL数据库读取的简单代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class NewClass {
public static void main(String[] args) {
Connection conn = null;
String url = "jdbc:mysql://192.168.100.100:3306/";
String dbName = "databaseName";
Statement stmt = null;
ResultSet result = null;
String driver = "com.mysql.jdbc.Driver";
String databaseUserName = "admin";
String databasePassword = "root";
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url + dbName, databaseUserName, databasePassword);
stmt = conn.createStatement();
result = null;
String password,username;
result = stmt.executeQuery("select * from userTable where username ='user1' ");
if(!result.isBeforeFirst()){
System.out.println("resultset contin no rows");
}
while (result.next()) {
username=result.getString("username");
password = result.getString("password");
System.out.println(username+" "+password);
}
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
谢谢你的快速回答,我正在看,也许会请你再帮我一个忙。再次感谢你。谢谢你的快速回答,我正在看,也许还需要你帮忙。再次感谢你。