javaでPostgresqlデータベースを条件を付けて読み込んで、それを格納したMapの戻り値から情報を得るメソッドです。「このメソッドはMap<String,List<String>>の結果を戻す必要があります.」というエラーメッセージが出て、戻り値をvoidにするか、finally句の直後に、retuen null を付加することをEclipseから求められます。
try句のなかで return map を置いて戻り値を返す命令を書いたつもりになっていたのですが、このコードではどこが悪くて、戻り値 map が返らないのでしょうか。できましたら戻り値として map を返す適切なコーディング法をどうかご教示下さい。
java
1public Map<String,List<String>> selectRepeaters() { 2 try { 3 Class.forName("org.postgresql.Driver"); 4 } 5 catch(ClassNotFoundException e1) { 6 e1.printStackTrace(); 7 } 8 Connection con=null; 9 try { 10 con=DriverManager.getConnection("jdbc:postgresql://localhost:5432/mydb3","postgres","postgres724"); 11 12 /*リピーターのレコードをすべて読み込む処理*/ 13 PreparedStatement pstmt = con.prepareStatement("SELECT * FROM BOOK WHERE times>1 ORDER BY times DESC;"); 14 ResultSet rs = pstmt.executeQuery(); 15 16 HashMap<String,List<String>> map = new HashMap<String,List<String>>(); 17 while(rs.next()) { 18 map.put(rs.getString(1),Arrays.asList(Integer.valueOf(rs.getInt(2)).toString(),rs.getString(3))); 19 } 20 return map; 21 } 22 catch(Exception e){ 23 e.printStackTrace(); 24 } 25 finally { 26 if(con != null) { 27 try { 28 System.out.println("con.close"); 29 con.close(); 30 } 31 catch(SQLException e){ 32 e.printStackTrace(); 33 } 34 35 } 36 } 37 38 39 } 40
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/24 07:14
2021/12/24 08:39
2021/12/24 09:45