java JDBCを使いデータの呼び出しがしたいです
解決したいこと
java初心者で初質問になります。
JDBCを使いデータの呼び出しをしたいのですが、エラーが解決できません。
発生している問題・エラー
エラー: メイン・クラスDBAccessのロード中にLinkageErrorが発生しました
java.lang.UnsupportedClassVersionError: DBAccess has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
該当するソースコード
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* ■ データベースに接続するプログラム
*
* カリキュラム「3-5-1.JDBCドライバ」を参考に
* JDBCドライブのjarファイルの設置とビルドパスの追加も忘れないようにしましょう。
*
* 問①〜問④までを回答し、データベースと接続してみましょう。
* カリキュラム「3-5-2.データベースを扱うための準備」を参考にしてください。
*
*/
public class DBAccess {
/** ドライバーのクラス名 */
private static final String POSTGRES_DRIVER = "org.postgresql.Driver";
/** ・JDMC接続先情報 */
// 問① データベースのホスト名・データベース名を定数にしなさい。
private static final String JDBC_CONNECTION = "jdbc:postgresql://localhost:5432/lesson_db";
/** ・ユーザー名 */
// 問② データベースのユーザー名を定数にしなさい。
private static final String USER = "postgres";
/** ・パスワード */
// 問③ データベースのパスワードを定数にしなさい。
private static final String PASS = "postgres";
public static void main(String[] args) {
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
Class.forName(POSTGRES_DRIVER);
// 問④ 問①〜③の定数を使ってデータベースと接続しなさい。
connection = DriverManager.getConnection(
JDBC_CONNECTION,USER,PASS );
statement = connection.createStatement();
String SQL = "SELECT * FROM TB_SHOHIN";
resultSet = statement.executeQuery(SQL);
while (resultSet.next()) {
String column1 = resultSet.getString("SHOHIN_ID");
String column2 = resultSet.getString("SHOHIN_NAME");
int column3 = resultSet.getInt("TANKA");
System.out.print(column1 + ",");
System.out.print(column2 + ",");
System.out.println(column3);
}
// forName()で例外発生
} catch (ClassNotFoundException e) {
e.printStackTrace();
// getConnection()、createStatement()、executeQuery()で例外発生
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (resultSet != null) {
resultSet.close();
}
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
MacBook-Air ~ % /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
11.0.15.1 (x86_64) "Oracle Corporation" - "Java SE 11.0.15.1" /Library/Java/JavaVirtualMachines/jdk-11.0.15.1.jdk/Contents/Home
1.8.333.02 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-11.0.15.1.jdk/Contents/Home
自分で試したこと
実行しようとしているバージョンが合っていないため発生してるエラーであると認識しています。
javaのアンインストールとインストールを実行し最新のものにしました。
jarを最新のものから古いものまで試しました。
どちらを変えてもうまくいきませんでした。初歩的な問題かもしれませんが解決方法を教えていただきたいです。
0