【问题标题】:Display the last 10 rows of the database显示数据库的最后 10 行
【发布时间】:2021-08-01 17:04:45
【问题描述】:

问题:大家好,我正在使用 Richfaces 进行一个项目,我想显示我的数据库 (MySQL) 的最后 10 行,这是我用来显示保存在我的数据库中的所有行的代码的一部分 CompanyBean.java 代码:

  public class EntrepriseBean implements Serializable{
private List<Entreprise> tableEntreprise ;
 
public List<Entreprise> getTableEntreprise() {
 
        ud= new EntrepriseDAO();
        tableEntreprise=ud.getAll();
 
        return tableEntreprise;
    }
 
    public void setTableEntreprise(List<Entreprise> tableEntreprise) {
        this.tableEntreprise = tableEntreprise;
    }
}

如果您有任何想法,它将对我非常有用。 谢谢。

【问题讨论】:

  • 定义“最后 10 行”:您是否使用自动增量 ID 并讨论具有 10 个最高 ID 的行?您的数据库条目是否有一些日期/时间字段,并且您想获得 10 条具有最高值的记录或类似的东西?
  • 如果您有很多对象然后使用ORDER BY x desc 并限制为 10,最有可能最好在 sql 级别解决此问题,语法当然取决于您使用的 RDBMS。
  • 您可以使用延迟加载。然后使用 fetch 您可以显示前 10 个,后 10 个,每个特定页面的记录,......根据需要。您可以指定默认排序,您的第一页可以显示按降序排列的数据,可能代表最后 10 条记录。

标签: java sql oop richfaces richfaces-modal


【解决方案1】:

正如一些 cmets 所指,最后 10 位是什么意思尚不清楚。在我看来,有两种很好的方法。在你的代码中,你可以做这样的事情

public List<Entreprise> getTableEntreprise() {

    ud = new EntrepriseDAO();
    tableEntreprise = ud.getAll();

    return tableEntreprise.stream().limit(10).collect(Collectors.toList());
}

另一种方法是更改​​ SQL 语句和使用限制,类似这样

SELECT * FROM enterprise
ORDER BY creation_time
LIMIT 10

这是假设 creation_time 是您表中的一个字段。或者,如果它是自动生成的,您可以按 id 排序,它会有更好的性能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多