【问题标题】:Program does not display all records, only the last record entered程序不显示所有记录,只显示最后输入的记录
【发布时间】:2014-12-04 08:53:33
【问题描述】:

我目前正在开发这个带有 Hibernate 框架的 Java Web 应用程序,它将显示数据库中的所有记录。但是,该程序仅列出所有行中输入的最后一条记录。 (意思是,如果我有 5 个不同的现有数据,程序会显示 5 行,其中包含输入的最后一条记录的数据。所以它只是重复最后一行的值。)

我无法弄清楚代码有什么问题:

    Configuration cfg = new Configuration();
    cfg.configure();

    SessionFactory factory = cfg.buildSessionFactory();

    Session session = factory.openSession();

    Query query = session.createQuery("from mytable");

    for (Iterator iterator = query.iterate(); iterator.hasNext();)
    {
        MyTable record = (MyTable) iterator.next();

        System.out.println("id: " + record.getId());
        System.out.println("firstName: " + record.getFirstName());
        System.out.println("lastName: " + record.getLastName());
        System.out.println("due: " + record.getDue());
        System.out.println("email: " + record.getEmail());
        System.out.println("website: " + record.getWebsite());
    }

【问题讨论】:

  • 您确定插入数据没有错误,而不是显示数据?
  • 我还没有数据插入。同时,我将样本数据直接插入数据库。
  • 好的,您检查过您没有意外插入相同的数据吗?
  • 是的,它们实际上都彼此不同。
  • 代码看起来不错可能是显示数据时的问题

标签: java sql hibernate list iterator


【解决方案1】:

尝试使用列表来代替:

List entities = session.createQuery("from mytable").list();
for (Object o : entities) {
    MyTable record = (MyTable) o;
    ...
}

【讨论】:

  • 那么你没有任何数据要加载。你连接到同一个数据库吗?记录 SQL 查询并针对 DB 运行它们。
  • 有数据显示。问题是它只显示所有行中输入的最后一条记录。
  • 粘贴执行的 SQL 并在控制台中运行它以获取实际选择的记录。然后也粘贴 SQL 结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-26
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 2019-03-26
相关资源
最近更新 更多