- ベストアンサー
JDBC PostgreSQLで必要なファイルはあるのでしょうか?
LinuxでPostgreSQLのデータベースをJDBCでアクセスしたいのですが、以下のソースで次のエラーが発生します。何か必要なファイルでもあるのでしょうか? java.lang.ClassNotFoundException:org.postgres.Driver また、LinuxのODBCも必要なファイルがあるのでしょうか? import java.sql.*; class jdbcSample2 { public static void main(String argv[]) { int a; String b; try { //Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver"); //String url = "jdbc:odbc:test"; Class.forName ("org.postgres.Driver"); String url = "jdbc:postgresql://127.0.0.1:5432/test"; String user = ""; String password = ""; Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement (); String query = "select * from member;"; ResultSet rs = stmt.executeQuery (query); while(rs.next()){ a = rs.getInt(1); b = rs.getString(2); System.out.println(a + ", " + b); } rs.close(); stmt.close(); con.close(); } catch (SQLException ex) { System.err.println("SQL failed."); ex.printStackTrace (); } catch (Exception ex) { ex.printStackTrace (); } } }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
JavaでPostgreSQLにアクセスするには、JDBCドライバの役割を果たすpostgresql.jarというJavaアーカイブファイルが必要だったはずです。 postgresql.jarはPostgreSQLをインストールしたときに自動的に生成されているはずですので、このファイルを環境変数CLASSPATHに設定してみてください。これが設定されていないと、プログラムの実行時にClassNotFoundExceptionが発生します。 ただ、PostgreSQLのバージョンによっては、PostgreSQLのインストール時に生成されたpostgresql.jarではうまく動作しないことがあります。その場合は、そのバージョンに適合するファイルを別途入手する必要があります。
その他の回答 (1)
- mi-si
- ベストアンサー率35% (200/567)
ClassNotFoundExceptionはClassが見つからない時に出る例外なので、実行時にPostgreSQL JDBC DriverのライブラリにCLASSPATHが通ってますか?(それ以前にPostgreSQL用のJDBC Driverがインストールされているでしょうか?) Class.forNameメソッドでクラスをロードした場合、そのクラスが存在するかは、コンパイル時にチェックが行われないのでコンパイルは通ってしまいます。