- 締切済み
配列の登録で困っています。
データベースから、サーブレットで"Data Access Object"を使い、一つの商品に登録している複数の色とサイズを取り出すところまでできたのですが、formbeanへの配列のセットの仕方が分かりません。お願い致します。 <formbean(名前:Product)> private String[] size; private String[] color_name; public String getSize() { return size; } public void setSize(String[] size) { this.size = size; } public String[] getColor_name() { return color_name; } public void setColor_name(String[] colorName) { color_name = colorName; } <サーブレット>(下記の""のところは、列名) private Product getProduct(ResultSet rs) throws SQLException { Product pro = new Product(); pro.setGoods_info_id(rs.getInt("goods_info_id")); ここからの2行がエラーです。 //pro.setSize(rs.getString("size")); //pro.setColor_name(rs.getString("color_name")); return pro; }
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ProKaseifu
- ベストアンサー率51% (98/192)
複数要素を扱う場合、大抵はlist形式にするのではないでしょうか? import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; public class TKO_1988 { public static void main(String[] args) { Connection con = null; Statement stmt = null; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection("jdbc:odbc:hogehoge"); stmt = con.createStatement(); String sql = "SELECT * FROM HOGEHOGE"; ResultSet rs = stmt.executeQuery(sql); List<Product> list = getProduct(rs); for ( Product prod : list ){ System.out.println(prod.getColor_name()); System.out.println(prod.getSize()); System.out.println(prod.getSize()); } } catch (Exception e){ e.printStackTrace(); } finally{ try{ stmt.close(); con.close(); } catch (SQLException e){ e.printStackTrace(); } } } private static List<Product> getProduct(ResultSet rs) throws SQLException { List<Product> list = new ArrayList<Product>(); while(rs.next()){ Product pro = new Product(); pro.setGoods_info_id(rs.getInt("goods_info_id")); pro.setSize(rs.getString("size")); pro.setColor_name(rs.getString("color_name")); list.add(pro); } return list; } } class Product{ private String size; private String color_name; private int goods_info_id; public int getGoods_info_id() { return goods_info_id; } public void setGoods_info_id(int goods_info_id) { this.goods_info_id = goods_info_id; } public String getSize() { return size; } public void setSize(String size) { this.size = size; } public String getColor_name() { return color_name; } public void setColor_name(String color_name) { this.color_name = color_name; } } あくまでも一例です、動作確認もしていません。