お世話になります。
postgreSQLにjavaから接続しています。
tomcat立ち上げ後一度のみ下記のエラーが発生します。
「java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432/sampledb」
ブラウザの更新ボタンで更新すると特に問題なくデータが取れてくるので何が原因なのかよくわかりません。
アドバイスいただけないでしょうか。
環境はそれぞれ以下のとおりです。
java 1.8
postgresql 11.3
driver 42.2.5
eclipse 2019-03 (4.11.0)
エラーが発生しているのは下記のソースです。
java
1// 【sampleServlet.java】 2 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 3 4 try { 5 // sampleServletのモデル 6 SampleModel im = new SampleModel (); 7 8 // 都道府県一覧を取得 9 ArrayList<LinkedHashMap<String, String>> prefList = im.GetPrefList(); 10 request.setAttribute("prefList", prefList); 11 12 } catch (ClassNotFoundException | SQLException e) { 13 e.printStackTrace(); 14 } 15 16 RequestDispatcher dispatcher = request.getRequestDispatcher("/jsp/index.jsp"); 17 dispatcher.forward(request, response); 18 } 19
java
1// 【sampleModel.java】 2 // 都道府県の一覧を取得 3 public ArrayList<LinkedHashMap<String, String>> GetPrefList() throws SQLException, ClassNotFoundException { 4 5 prefDao prefDao = new prefDao(); 6 prefDao.DBconnectOpen(); 7 ArrayList<LinkedHashMap<String, String>> res = prefDao.GetPrefList(); 8 prefDao.DBconnectionClose(); 9 10 return res; 11 12 } 13
// エラーが起こるのはこのソース
java
1// 【DBconnect.java】 2 3 public void DBconnectOpen() throws SQLException, ClassNotFoundException { 4 connect = DriverManager.getConnection(Define.DB.URL, Define.DB.USER, Define.DB.PASS); 5 } 6
java
1// 【prefDao.java】 2 // マスタ登録されている都道府県データを全て取得 3 public ArrayList<LinkedHashMap<String, String>> GetPrefList() throws ClassNotFoundException, SQLException { 4 5 String sql = "SELECT id, area_id, name FROM m_pref"; 6 7 ArrayList<LinkedHashMap<String, String>> al = selectToArrayList(sql); 8 9 return al; 10 11 }
java
1// 【DBconnect.java】 2 public ArrayList<LinkedHashMap<String, String>> selectToArrayList(String sql) throws SQLException { 3 try { 4 PreparedStatement ps = connect.prepareStatement(sql); 5 ResultSet rs = ps.executeQuery(); 6 7 ~ResultSetの内容を使いやすいように作り変える処理~ 8 9 rs.close(); 10 11 return ary; 12 13 } catch (SQLException e) { 14 throw e; 15 } 16 }
あなたの回答
tips
プレビュー