- - PR -
ArrayListに保存したデータレコードを取得するには。。。
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-03-09 09:20
で、解決したでしょうか?
解決したのであれば、後で読む人のためにも、自分の整理のためにも結果をまとめてみてはいかがでしょう。 | ||||||||||||
|
投稿日時: 2005-03-09 09:23
ご説明ありがとうございます。それはすべてのコードですが、「mlist のインスタンスを生成してない」について、よく分かりませんが。よろしければ、もっと詳しくご説明いただけませんか。 | ||||||||||||
|
投稿日時: 2005-03-09 09:24
そうですね、頑張りましょう~ | ||||||||||||
|
投稿日時: 2005-03-09 10:00
「インスタンス生成」すらもわかっていないということは、 掲示板でどうのこうのする以前の問題だと思います。 まずは、何でもいいから入門書を1冊、勉強してください。 がんばってくださいね。 [ メッセージ編集済み 編集者: Edosson 編集日時 2005-03-09 10:07 ] | ||||||||||||
|
投稿日時: 2005-03-09 10:07
単純に申しますと
が実行されるより前に
という記述がないと mlist が ArrayList を 参照していないので mlist.add(ta) が失敗します。 ということです。 | ||||||||||||
|
投稿日時: 2005-03-09 10:36
ご返答ありがとうございます。 実はmlistはフィールド変数として、プログラムの最初の部分で定義しました。いまはexecuteの部分を書き直して、「 public ArrayList execute() { try { Class.forName("com.mysql.jdbc.Driver"); Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/chumomosite?useUnicode=true&characterEncoding=Shift-JIS","root","1234"); Statement stmt=con.createStatement(); rs=stmt.executeQuery("select * from item"); while (rs.next()) { Kit ta=new Kit(); ta.id=rs.getInt("id"); ta.name=rs.getString("name"); ta.price=rs.getInt("price"); ta.detail=rs.getString("detail"); ta.picture=rs.getString("picture"); mlist.add(ta); } return this.mlist; } catch(SQLException ex) { ex.printStackTrace(); } catch(Exception ex) { // TODO Auto-generated catch block ex.printStackTrace(); } } のようにしました。しかし、「this method must return a result of type ArrayList」というエラーが出てきました。確かに「return mlist;」と記述したのに、そのエラーはいったいどういうことでしょうか。 | ||||||||||||
|
投稿日時: 2005-03-09 10:50
一度に考えることは、ひとつだけになさい。
あなたに、2コ以上の脳ミソがあるのなら別ですがね。 | ||||||||||||
|
投稿日時: 2005-03-09 10:59
メソッドの一番最後にreturnがないからです。あなたのプログラムはcatchでprintStackTraceを行った後そのままメソッドの処理が継続する為、最後にreturnでArrayListを返却する必要があります。 そのような処理なら通常tryの中ではなくメソッドの最後にreturnを書きましょう。 皆さんも書かれているので余計な事だとは思いますが、基本的な事を一から学ぶ必要があると思います。 |