无法从Java中的数据库读取表中的行

用户1

我正在编写代码以实现库存模型。作为其中的一部分,我必须从数据库中获取Item并设置Item的属性,然后将该Item对象添加到列表中,从而在列表上执行一些功能。数据库中有三个表,每个表包含3行。但是问题在于,只有最后一张表中的最后一行被插入了九次。请帮助我找到代码中的问题所在。readAllItemsFromDb方法具有上述任务,并返回Item对象的列表。Item类包含ID,描述,重量,价格,制造日期,useBeforeMonths及其设置和获取方法等字段。

我的方法代码如下-

public List<Item> readAllItemsFromDb() {
    // TODO Auto-generated method stub
    List<Item> list=new ArrayList<Item>();
    Item item=new Item();
    Milk milk=new Milk();
    Cheese cheese=new Cheese();
    Wheat wheat=new Wheat();

    String cheese_type=new String();
    String milk_type=new String();
    String wheat_type=new String();
    String ingred_cheese=new String();

    String cheese_query="select id,description,weight,price,mfg_date,UseBeforeInMonths from cheese_tbl;";
    String milk_query="select id,description,weight,price,mfg_date,UseBeforeInMonths from milk_tbl;";
    String wheat_query="select id,description,weight,price,mfg_date,UseBeforeInMonths from wheat_tbl;";

    try {
        con=dcm.getConnection();//Theres' no problem with Connection 
        st=con.createStatement();
        rs=st.executeQuery(cheese_query);
        while(rs.next()){
            item.setId(rs.getInt(1));
            item.setDescription(rs.getString(2));
            item.setWeight(rs.getFloat(3));
            item.setPrice(rs.getFloat(4));
            item.setManufacturingDate(rs.getDate(5));
            item.setUseBeforeMonths(rs.getInt(6));

            list.add(item);
        }

        rs=st.executeQuery(milk_query);
        while(rs.next()){
            item.setId(rs.getInt(1));
            item.setDescription(rs.getString(2));
            item.setWeight(rs.getFloat(3));
            item.setPrice(rs.getFloat(4));
            item.setManufacturingDate(rs.getDate(5));
            item.setUseBeforeMonths(rs.getInt(6));
            list.add(item);

        }

        rs=st.executeQuery(wheat_query);
        while(rs.next()){
            item.setId(rs.getInt(1));
            item.setDescription(rs.getString(2));
            item.setWeight(rs.getFloat(3));
            item.setPrice(rs.getFloat(4));
            item.setManufacturingDate(rs.getDate(5));
            item.setUseBeforeMonths(rs.getInt(6));

            list.add(item); 
        }


    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return list;
}
用户404

您必须在while循环的每次迭代开始时创建一个新的Item对象。

   while(rs.next()){
        item = new Item();
        item.setId(rs.getInt(1));
        item.setDescription(rs.getString(2));
        item.setWeight(rs.getFloat(3));
        item.setPrice(rs.getFloat(4));
        item.setManufacturingDate(rs.getDate(5));
        item.setUseBeforeMonths(rs.getInt(6));

        list.add(item);
    }

    rs=st.executeQuery(milk_query);
    while(rs.next()){
        item = new Item();
        item.setId(rs.getInt(1));
        item.setDescription(rs.getString(2));
        item.setWeight(rs.getFloat(3));
        item.setPrice(rs.getFloat(4));
        item.setManufacturingDate(rs.getDate(5));
        item.setUseBeforeMonths(rs.getInt(6));

        list.add(item);
    }

    rs=st.executeQuery(wheat_query);
    while(rs.next()){
        item = new Item();
        item.setId(rs.getInt(1));
        item.setDescription(rs.getString(2));
        item.setWeight(rs.getFloat(3));
        item.setPrice(rs.getFloat(4));
        item.setManufacturingDate(rs.getDate(5));
        item.setUseBeforeMonths(rs.getInt(6));

        list.add(item); 
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从数据库表中读取集

来自分类Dev

数据库:计算表中的行

来自分类Dev

无法更新数据库中的行

来自分类Dev

无法从数据库中删除行

来自分类Dev

为什么我的WHILE循环没有从数据库中读取所有表行?

来自分类Dev

RJDBC错误地从数据库表中读取bigintegers

来自分类Dev

读取数据库表并输出到Scala中的文件?

来自分类Dev

无法从 SocialEngine Zend 中的数据库表中获取行集

来自分类Dev

无法从C#中的SQL Server数据库读取

来自分类Dev

无法使用猫鼬从数据库中读取

来自分类Dev

如何从Sql数据库中仅读取10行?

来自分类Dev

从数据库中的多个表中删除行

来自分类Dev

Codeigniter无法使用Join方法从数据库表中删除行

来自分类Dev

FastAPI和GINO无法从数据库表中获取所有行

来自分类Dev

mysqli_fetch_array()无法从数据库中获取表的第一行

来自分类Dev

无法在JTable中显示行(数据库中的值)

来自分类Dev

Java和MySQL数据库中的文件读取

来自分类Dev

无法在数据库中创建表

来自分类Dev

无法在Web SQL数据库中创建新表

来自分类Dev

无法自动创建SQL Server数据库中的表

来自分类Dev

插入到无法使用Python的数据库表中

来自分类Dev

无法在数据库中创建多个表

来自分类Dev

无法在iOS的sqlite数据库中删除表

来自分类Dev

无法在Laravel 4.2中创建数据库表

来自分类Dev

无法在数据库中创建表

来自分类Dev

无法在数据库表中插入值

来自分类Dev

无法在 mongo 数据库中创建表的架构

来自分类Dev

无法在数据库中创建表

来自分类Dev

无法在数据库中创建表