アプリ版:「スタンプのみでお礼する」機能のリリースについて

import java.sql.*;

public class DBConnect1{
public static void main(String[] args) throws Exception{


Connection con;
Statement st;
ResultSet rs;

String url = "jdbc:postgresql://localhost:5432/postgres";
String user = "postgres";
String password = "test";

Class.forName("org.postgresql.Driver");

con = DriverManager.getConnection(url ,user, password);
st = con.createStatement();


rs = st.executeQuery("select 1 as col_1");
rs.next();
System.out.print(rs.getInt("col_1"));

rs.close();
st.close();
con.close();

}
}
定数1を表示させようと思っているのですが

Exception in thread "main" java.lang.ClassNotFoundException: org.postgresql.Driver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at DBConnect1.main(DBConnect1.java:17)


このようなエラーが出てしまいます。
勉強し始めたばかりなのでエラーの原因がよく分かりません

考えられる原因を教えていただけると助かります。

A 回答 (1件)

エラーメッセージをよく読みましょう。



> Exception in thread "main" java.lang.ClassNotFoundException: org.postgresql.Driver

このメッセージをとりあえず日本語に訳すと、次のような感じ。

  "main"スレッドでjava.lang.ClassNotFoundException例外:org.postgresql.Driver

もうちょっと詳しく言うと、

 "main"スレッドで例外が発生しました。
  例外の種類:java.lang.ClassNotFoundException //"クラスが見つかりません"
  見つからないクラスの名前:"org.postgresql.Driver"

ということです。

そして、その例外の原因になっているコードの場所が、

> at DBConnect1.main(DBConnect1.java:17)

で示されています。

おそらく、次の箇所がDBConnect1.javaの17行目なのでしょう。

> Class.forName("org.postgresql.Driver");

PostgreSQL用のJDBCドライバがクラスパスに入ってないのが原因でしょう。

次のサイトが参考になるかも知れません。

 https://qiita.com/wb773/items/27dc0e77a4c8b035d6fc
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!