NetBeans 8.1で単純なHelloWorldアプリケーションを構築しています。 コンパイルして実行するとすぐに、MySQLを使用してテーブルaccのすべてのデータをデータベースアカウントにロードします。「報告されていない例外InstantiationException;をキャッチするか、スローする必要がある」を修正する方法
私はプロジェクトライブラリにConnector/J jarファイルを含め、MySQLに接続しましたが、Class.forName(com.mysql.jdbc.Driver).newInstance();に接続しました。コードの一部が「報告されていない例外InstantiationException;がキャッチされるかスローされると宣言されている」と表示され、何をすべきか正確には分かりません。私はここにこだわっています。ここで
は私のコードは、あなたが.newInstance()
を呼び出すと、呼び出されたコンストラクタは、いくつかの例外をスローする可能性
package learning_jdbc;
import java.sql.*;
public class Hello {
Connection connection;
private void displaySQLErrors(SQLException e) {
System.out.println("SQLException: " + e.getMessage());
System.out.println("SQLState: " + e.getSQLState());
System.out.println("VendorError: " + e.getErrorCode());
}
public Hello() {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (ClassNotFoundException e) {
System.out.println("Class not found.");
}
}
public void connectToDB() {
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/accounts","root","thejoker");
} catch(SQLException e) {
displaySQLErrors(e);
}
}
public void executeSQL() {
try (Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery("SELECT * FROM acc")) {
while (rs.next()) {
System.out.println(rs.getString(1));
}
connection.close();
} catch(SQLException e) {
displaySQLErrors(e);
}
}
public static void main(String[] args) {
Hello hello = new Hello();
hello.connectToDB();
hello.executeSQL();
}
}
エラーメッセージは何を意味しますか?あなたはそれを言い換えることができますか?ここに私の試みがあります: "あなたはInstantiationExceptionをキャッチする必要がありますか、それともスローされることを宣言する必要があります。" http://docs.oracle.com/javase/tutorial/essential/exceptions/を参照してください。このメッセージの意味と例外の仕組みを理解することが重要ですが、このコード行は必要ではないことに注意してください。 –