我想从数据库表中选择最后 5 个条目并将其显示在页面上。如何使用 JSP 实现它?

Posted

技术标签:

【中文标题】我想从数据库表中选择最后 5 个条目并将其显示在页面上。如何使用 JSP 实现它?【英文标题】:I want to select last 5 entries from DB table and display it on a page. How can I achieve it using JSP? 【发布时间】:2016-04-18 13:36:11 【问题描述】:

我想从数据库表中选择最后 5 个条目。我的数据库中有一个列 ID(int)、Product(string)、Version(string)、Description(string)。

假设我在数据库中有 50 个条目,我需要从表中选择最后 5 个条目(即 46、47、48、49 和 50)并将其打印在 html 页面上。如何使用 JSP 做到这一点?

下面是我的示例代码:

<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.text.*" %>
<%@ page language = "java" %> 
 <%   
    int id=0;
Connection connect2=null;
Statement state2=null;
ResultSet result2=null;
Connection connect=null;
Statement state=null;
ResultSet result=null;
tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
    connect2=DriverManager.getConnection("jdbc:odbc:ppbu"); 
    state2 = connect2.createStatement();    
    String strQuery2 = "select MAX(ID) from kb_articles_list";  
    result2 = state2.executeQuery(strQuery2);
    while(result2.next())
    id=result2.getInt(1);
    
finally 
        try 
          if (state2 != null)
            state2.close();
          catch (SQLException e) 
        try 
          if (connect2 != null)
            connect2.close();
         catch (SQLException e) 
      

    out.print(id);
    for(int a=0; a<5; a++)
          
   tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");   
    connect=DriverManager.getConnection("jdbc:odbc:ppbu");  
    state = connect.createStatement();  
    String strQuery = "select * from kb_articles_list where ID.equals(id)"; 
    result = state.executeQuery(strQuery);  
    while(result.next()) 
            %>
            <option><%= result.getString(2)%></option>
        <% state.close(); connect.close(); %>        
    <%    catch (Exception e) 
            e.printStackTrace();    

       id--;%>

【问题讨论】:

关系数据库表本质上是无序的。您可以使用 SQL ORDER BY 子句对结果集进行排序。只需让您的客户端代码为您正在使用的数据库引擎执行适当的 SQL。每个引擎都有不同的方法来仅选择 5 条记录。 感谢您的及时回复。我尝试了“订购方式”,但它对我不起作用。你能给我一个可以在 TRY 部分使用的 SQL 查询的单行示例吗? ORDER BY id DESC FETCH FIRST 5 ROWS ONLY 是 ANSI SQL 方式。 (不幸的是,许多产品在这里都有自己的方式......) 编辑这篇文章并添加一些您正在使用的代码可能会有所帮助。这样我们可以更好地解决您的错误。 【参考方案1】:

感谢您的宝贵时间。我使用下面的代码完成了这项工作。

String strQuery = "select * from kb_articles_list where ID="+id+""; 

【讨论】:

以上是关于我想从数据库表中选择最后 5 个条目并将其显示在页面上。如何使用 JSP 实现它?的主要内容,如果未能解决你的问题,请参考以下文章

从ViewModel设置条目的焦点

如何获得最后 10 个然后显示随机 5

如何使用 linq 实体仅从 sql 表中选择最后一个条目

从表中删除所有数据,但最后 N 个条目

从表格中选择不同的名称和编号并将其显示到下拉框中,然后保存我该怎么办?

SQL查询从数据库中的一个表中获取所有帖子,但来自特定用户的最多5个条目? [复制]