Mac OSでJavaのWebアプリケーションを開発している者です。
PostgreSQLを使ってデータベースの接続とテーブル検索を行うプログラムを作成しているのですが、実行するとjava.lang.ClassNotFoundException: org.postgresql.Driverというエラーが発生します。
【手順】
1.PostgreSQLのサイトから最新バージョンのJDBCドライバをダウンロードする
2.Eclipseのビルドパスから外部jarとしてJDBCドライバを追加する
3.作成したWebアプリケーションを起動する
4.DBへの接続するタイミングでClassNotFoundExceptionが発生する
作成したソースコードを載せます
java
1package util; 2 3import java.sql.Connection; 4import java.sql.DriverManager; 5import java.sql.PreparedStatement; 6import java.sql.ResultSet; 7import java.sql.SQLException; 8 9/** 10 * データベースの接続及びデータベースの操作を行います 11 */ 12public class ConnectionDatabase { 13 14 static Connection con; 15 static PreparedStatement st; 16 static ResultSet rs; 17 18 public static void main(String[] args){ 19 try { 20 Class.forName("org.postgresql.Driver"); 21 String url = "jdbc:postgresql:test"; 22 String user = "administrator"; 23 String pass = "password"; 24 25 con = DriverManager.getConnection(url, user, pass); 26 String sql = "SELECT * FROM customer_info"; 27 st = con.prepareStatement(sql); 28 rs = st.executeQuery(); 29 int count = 0; 30 while(rs.next()){ 31 count++; 32 System.out.println(rs.getString("customer_id")); 33 } 34 35 if(count == 0){ 36 System.out.println("0件でした"); 37 }else{ 38 System.out.println("ヒットしました"); 39 } 40 41 42 } catch (Exception e) { 43 System.out.println("例外が発生しました"); 44 }finally{ 45 try { 46 rs.close(); 47 st.close(); 48 con.close(); 49 } catch (SQLException e) { 50 System.out.println("リソースの解放に失敗しました"); 51 } 52 53 } 54 } 55}
テスト用のクラスからはドライバーが読み込まれて検索結果が表示されるのですが、サーブレットから呼び出すとエラーになってしまいます。
DB接続テストクラス(単体で動かすとエラーが発生せずに検索結果が取得できる)
java
1/** 2 * データベースの接続及びデータベースの操作を行います 3 */ 4public class ConnectionDatabaseTest { 5 6 static Connection con; 7 static PreparedStatement st; 8 static ResultSet rs; 9 10 public static void main(String[] args){ 11 try { 12 Class.forName("org.postgresql.Driver"); 13 String url = "jdbc:postgresql:test"; 14 String user = "administrator"; 15 String pass = "password"; 16 17 con = DriverManager.getConnection(url, user, pass); 18 String sql = "SELECT * FROM customer_info"; 19 st = con.prepareStatement(sql); 20 rs = st.executeQuery(); 21 int count = 0; 22 while(rs.next()){ 23 count++; 24 System.out.println(rs.getString("customer_id")); 25 } 26 27 if(count == 0){ 28 System.out.println("0件でした"); 29 }else{ 30 System.out.println("ヒットしました"); 31 } 32 33 34 } catch (Exception e) { 35 System.out.println("例外が発生しました"); 36 }finally{ 37 try { 38 rs.close(); 39 st.close(); 40 con.close(); 41 } catch (SQLException e) { 42 System.out.println("リソースの解放に失敗しました"); 43 } 44 45 } 46 } 47}
今回初めてMacで開発をしているのですが、Windowsと同じように環境設定にJDBCドライバを追加すれば良いのでしょうか?
解決方法をご存知の方がいましたら教えて頂けないでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/28 15:15
退会済みユーザー
2017/03/01 22:00 編集