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

问题描述 投票:0回答:1

我正在尝试使用java bean属性和数组列表访问数据库表数据。我将数组列表转换为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>

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

item.itemId item.itemName

java database jsp
1个回答
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>
© www.soinside.com 2019 - 2024. All rights reserved.