我想从数据库表中选择最后 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--;%>
【问题讨论】:
关系数据库表本质上是无序的。您可以使用 SQLORDER 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 实现它?的主要内容,如果未能解决你的问题,请参考以下文章