使用java bean数组列表访问数据库表

时间:2017-12-30 09:14:23

标签: java database jsp

  

我正在尝试使用java bean propety和访问数据库表数据   数组列表。我将数组列表转换为html表。我找不到   任何适当的例子。我不想使用Servlet。

public class ItemBean {
    int item_id;
    String item_name;
    String item_description;
    double item_costpice;
    double item_unitpice;
    public void setItemId(int id){this.item_id=id;}  
    public int getItemId(){return item_id;}  

    public void setItemName(String name){this.item_name=name;}  
    public String getItemName(){return item_name;} 

    public void setItemDesc(String name){this.item_name=name;}  
    public String getItemDesc(){return item_name;} 

    public void setItemCostPrice(double price){this.item_costpice=price;}  
    public double getItemCostPrice(){return item_costpice;} 

    public void setItemUnitPrice(double price){this.item_unitpice=price;}  
    public double getItemUnitPrice(){return item_unitpice;} 

}

package pam.setup;
import java.sql.*;
import java.util.ArrayList;

public class Item {

    public static ArrayList<ItemBean> ItemList()
    {
        ResultSet rs = null;
        ArrayList<ItemBean> list=new ArrayList<ItemBean>();
        ItemBean dbitem = new ItemBean();
        try{


            Class.forName("com.mysql.jdbc.Driver");
            Connection con=DriverManager.getConnection(  
                    "jdbc:mysql://localhost:3306/sonoo","root","");  

                Statement stmt=con.createStatement();  
                rs=stmt.executeQuery("select * from items");  
                con.close(); 
                while (rs.next()) {   
                    dbitem.setItemId(rs.getInt("item_id"));
                    dbitem.setItemName(rs.getString("name"));
                    dbitem.setItemDesc(rs.getString("description"));
                    dbitem.setItemCostPrice(rs.getDouble("cost_price"));
                    dbitem.setItemUnitPrice(rs.getDouble("unit_price"));
                    list.add(dbitem);
                }           
        }catch(Exception e){ System.out.println(e);}

        return list;

    }
}

<jsp:useBean id="items" scope="page" class="pam.setup.Item" type="pam.setup.Item">
    <table>
        <tbody>
        <c:forEach items="${item.itemList}" var="item">
            <tr><td>item.itemId</td><td>item.itemName</td></tr>
        </c:forEach>
        </tbody>
    </table>
</jsp:useBean>
  

我已经编写了上面的代码,我想在jsp中访问数据库表数据   使用java bean属性并迭代数据并生成HTML表。但   我在下面提到结果而不是实际的项目ID和   名称。

     

item.itemId item.itemName

1 个答案:

答案 0 :(得分:0)

必须为循环的每次迭代创建新的ItemBean:

while (rs.next()) { 
    ItemBean dbitem = new ItemBean();
    dbitem.setItemId(rs.getInt("item_id"));
    ...

在循环后关闭连接

使用$ {}来评估bean表达式:

 <tr><td>item.itemId</td><td>${item.itemName}</td></tr>