从 MySQL 数据库中检索数据并使用 java [重复] 在 html 中显示它

Posted

技术标签:

【中文标题】从 MySQL 数据库中检索数据并使用 java [重复] 在 html 中显示它【英文标题】:Retrieving data from a MySQL database and displaying it in html using java [duplicate] 【发布时间】:2012-02-19 21:41:00 【问题描述】:

我有一个 mysql 数据库,我正在尝试搜索它并将结果显示在一个表格中,该表格与网页上的 html 中的 db 具有相同的列。我正在为 servlet 使用 JAVA,并且我让网页使用 javascript 将搜索字符串发送到 servlet。我知道如何:

    连接到数据库 查询 db 并在结果集中检索适当的数据

我无法从结果集返回并在表格中的网页上显示它。

【问题讨论】:

【参考方案1】:

这是一个很好的教程(如果现在有点老了)。它涵盖了从数据库获取数据、使用 MVC 类型架构、Java bean 和带有表达式语言的 JSP。

http://pdf.coreservlets.com/

请看第 17 章。

【讨论】:

【参考方案2】:

您可以使用ResultSetMetaData 在 HTML 表格中显示您的数据。我假设 'rs' 是查询结果集的变量。以下应该适合你

int rowCount = 0;
PrintWriter out = response.getWriter();

 out.println("<P ALIGN='center'><TABLE BORDER=1>");
 ResultSetMetaData rsmd = rs.getMetaData();
 int columnCount = rsmd.getColumnCount();
 // table header
 out.println("<TR>");
 for (int i = 0; i < columnCount; i++) 
   out.println("<TH>" + rsmd.getColumnLabel(i + 1) + "</TH>");
   
 out.println("</TR>");
 // the data
 while (rs.next()) 
  rowCount++;
  out.println("<TR>");
  for (int i = 0; i < columnCount; i++) 
    out.println("<TD>" + rs.getString(i + 1) + "</TD>");
    
  out.println("</TR>");
  
 out.println("</TABLE></P>");
 return rowCount;

您可以查看此tutorial 了解详细信息。

【讨论】:

ResultSetMetaData - 是的,这是获取列名的更好方法,而不是在 servlet 中硬编码。只有当您希望在 HTML 表中使用与相应数据库表中不同的列名时,硬编码才实用。 真的!因此我建议使用ResultSetMetaData。很好的一点@WebUser.. 你问过什么@ManBearPig 吗?因为我在我的 stackexchange 收件箱中看到了一些 cmets,但在这里无法阅读。 是的,我把评论弄乱了,然后重新输入了。我是使用 JAVA 和 servlet 的新手,所以这是一个愚蠢的问题,但是该代码是否包含在 JavaScript 调用的 servlet 方法中?我在网页上调用该方法,例如:'Servlet.search(searchStr)',以便代码在'search'方法中?我想我很困惑,因为我在它们中看到了 java 和 html out.println() 我很困惑它会在页面上的哪个位置调用表格? 虽然我不知道你的 'search(searchStr)' 方法里面有什么,但我认为你可以将代码放在你想要的任何地方,因为它会将你的结果集的值打印成 HTML表。【参考方案3】:

您是说您无法遍历 ResultSet 对象并在 servlet 中生成 HTML?

if (rs.next()) 

    out.print("<table><tr><th>column1</th><th>column2</th>...</tr>");

    do 

        out.print("<tr>");
        out.print(new StringBuilder("<td>").append(rs.getObject("column1"))append("</td>").toString());
        out.print(new StringBuilder("<td>").append(rs.getObject("column2"))append("</td>").toString());
        ...
        out.print("</tr>");
     while (rs.next());

    out.print("</table>");

【讨论】:

【参考方案4】:

步骤 1)假设您从数据库中获取列表 2) 将此列表设置为 http-request 属性。(使用 setAttribute 函数) 3) 并从 httpRequest. 获取 RequestDispatcher 4) 在 jsp 上使用以下

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<Table>
<Tr>
     <td>col1</td> 
     <td>col2</td>
</tr>
<c:forEach var="i" items="$listName">
  <tr>
      <td>
        <c:out value="$i['col1']"/>
      </td>          
      <td>
        <c:out value="$i['col1']"/>
      </td>
  <tr>
</c:forEach>
</table>

【讨论】:

以上是关于从 MySQL 数据库中检索数据并使用 java [重复] 在 html 中显示它的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 java servlet 从 mysql 数据库中检索图像并将其显示在 HTML img 标签中? [关闭]

从 mysql 数据库中检索图像时引发异常

使用“mysql_fetch_row”从数据库中检索结果并使用 PHP 和 mysqli 插入数组?

Java - 从 MySQL 数据库中获取数据

使用java从mysql中的bit(2)列存储和检索值

如何从 MySQL 数据库中存储和检索图像并使用 Php 将其显示在 html 中? [复制]