電子書籍の厳選無料作品が豊富!

JavaBeansにDBの値を格納したいのですがやり方がよくわかりません。
どなたかわかる方教えていただけないでしょうか?

ちなみにこんなやり方でやってみました。
DAOは

int i = 0;
while(rs.next()){
   jb.setId(i,rs.getString("syouhinid"));
   i++;
}

JavaBeansは

private String[] id = null;

public void setId(int i, String val){
this.id[i] = val;
}

public String getId(int i){
return id[i];
}

こんな感じです。

部分的ですがこんな感じです。
ソースコードを全部乗せると長くなるので、全部乗せられませんが、
いまいちJavaBeansにDBの値を格納するやり方がわからないので
皆さん色々教えてください。宜しく御願い致します。

A 回答 (2件)

IndexOutOfBoundsException だな(・q・



自動追加リストを使いましょう。
    • good
    • 0

エスパー的余地で NPE で落ちてると予想。



String[] id = null で入れ物つくってないから NPE でおちてるだけじゃね?
    • good
    • 0
この回答へのお礼

確かにその通りです。ありがとうございます。
でも、DBの値って増えたり、減ったりするから配列も可変じゃないと駄目ですよね?
そういう場合ってArrayListを使えばいいんですか?

ArrayListを使ってみたのですがやっぱり上手くいきません。
内容はJavaBeansが

ArrayList<String[]> syouhin = new ArrayList<String[]>();

public void setSyuouhin(ArrayList<String[]> val){
this.syouhin = val;
}

public ArrayList<String[]> getSyouhin(){
return syouhin;
}

public void setMenu(String syouhinid, String category, String name, String money){
String[] menu = {syouhinid,category,name,money};
syouhin.add(menu);
}

public String[] getMenu(int i){
return syouhin.get(i);
}



DAOが

syodb.JavaBeans jb = new syodb.JavaBeans();
while(rs.next()){
  String syouhinid = rs.getString("syouhinid");
  String category =rs.getString("categoryid");
  String name =rs.getString("name");
  String money =rs.getString("money");
  jb.setMenu(syouhinid, category , name, money );
}

です。

これでも上手く格納できませんでした。

後、JavaBeansに格納した値が上手く呼び出せません。

JavaBeansで

private String categoryid = new String();

public void setCategoryId(String val){
this.categoryid = val;
}

public String getCategoryId(){
return categoryid;
}

と書いて

Controllerで
syodb.JavaBeans jb = new syodb.JavaBeans();
jb.setCategoryId(category);

とし、

Modelで
syodb.JavaBeans jb = new syodb.JavaBeans();
String categoryid = jb.getCategoryId();

というふうに書いたのですが上手く呼び出せません。
多分、private String categoryidで引っかかっているのかなと
思っているのですが、原因も解決方法もよくわかりません。
よろしければこれも教えて頂けないでしょうか?

自分でも色々調べてるのですがどうしても解決できないので
どうか宜しく御願い致します。

お礼日時:2011/12/30 08:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!