Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从JSP文件迭代ResultSet?_Java_Sql_Jsp_Servlets_Resultset - Fatal编程技术网

Java 如何从JSP文件迭代ResultSet?

Java 如何从JSP文件迭代ResultSet?,java,sql,jsp,servlets,resultset,Java,Sql,Jsp,Servlets,Resultset,我在servlet文件中有一个简单的语句,它将遍历数据库并获得结果集 ResultSet AssignmentList = stmt.executeQuery("SELECT * FROM Assignments WHERE " + projectID + "= Pid;"); request.setAttribute("assignmentList", AssignmentList); 如您所见,我正在将ResultSet发送到一个JSP文件。在这个JSP文件中,我试着像这样遍历它 <

我在servlet文件中有一个简单的语句,它将遍历数据库并获得结果集

ResultSet AssignmentList = stmt.executeQuery("SELECT * FROM Assignments WHERE " + projectID + "= Pid;");
request.setAttribute("assignmentList", AssignmentList);
如您所见,我正在将
ResultSet
发送到一个JSP文件。在这个JSP文件中,我试着像这样遍历它

<table class="CSSTableGenerator">
    <thead>
    <tr>
        <th>Aid</th>
        <th>Title</th>
        <th>Task</th>
        <th>ID of User Responsible</th>
    </tr>
    </thead>
    <tbody>

    <c:forEach items="${assignmentList}" var="item">
        <tr>
            <td>${item.Aid}</td>
            <td>${item.Title}</td>
            <td>${item.Task}</td>
            <td> ${item.UserID}</td>            
        </tr>
    </c:forEach>

    </tbody>
</table>

帮助
标题
任务
负责用户的ID
${item.Aid}
${item.Title}
${item.Task}
${item.UserID}
但是当我这样做的时候,我得到了一个错误。
我是想以错误的方式进行迭代,还是不可能通过
结果集进行迭代

在我们读取结果集之后,我们需要关闭数据库连接。因为您在JSP中读取结果集,所以只能在JSP中关闭连接。在我看来,这不是一个好的做法


在servlet中查询数据库后,读取结果集,将结果存储在列表中,然后关闭数据库连接。然后,在请求属性中将此列表传递给JSP。JSP使用EL从请求属性检索列表。您可以使用JSTL来迭代此列表。

读取结果集后,我们需要关闭数据库连接。因为您在JSP中读取结果集,所以只能在JSP中关闭连接。在我看来,这不是一个好的做法


在servlet中查询数据库后,读取结果集,将结果存储在列表中,然后关闭数据库连接。然后,在请求属性中将此列表传递给JSP。JSP使用EL从请求属性检索列表。您可以使用JSTL来迭代此列表。

读取结果集后,我们需要关闭数据库连接。因为您在JSP中读取结果集,所以只能在JSP中关闭连接。在我看来,这不是一个好的做法


在servlet中查询数据库后,读取结果集,将结果存储在列表中,然后关闭数据库连接。然后,在请求属性中将此列表传递给JSP。JSP使用EL从请求属性检索列表。您可以使用JSTL来迭代此列表。

读取结果集后,我们需要关闭数据库连接。因为您在JSP中读取结果集,所以只能在JSP中关闭连接。在我看来,这不是一个好的做法

在servlet中查询数据库后,读取结果集,将结果存储在列表中,然后关闭数据库连接。然后,在请求属性中将此列表传递给JSP。JSP使用EL从请求属性检索列表。您可以使用JSTL来迭代此列表。

您可以尝试使用设计用于访问JSP页面中数据库的JSTL

我已经分享了一种方法,以及可能对您有所帮助的示例代码

逻辑:只需从Servlet中的数据库获取数据,并将数据填充到POJO类中,将所有记录的最终列表设置为请求属性,最后将请求转发到JSP页面。

您可以尝试使用专为访问JSP页面中的数据库而设计的

我已经分享了一种方法,以及可能对您有所帮助的示例代码

逻辑:只需从Servlet中的数据库获取数据,并将数据填充到POJO类中,将所有记录的最终列表设置为请求属性,最后将请求转发到JSP页面。

您可以尝试使用专为访问JSP页面中的数据库而设计的

我已经分享了一种方法,以及可能对您有所帮助的示例代码

逻辑:只需从Servlet中的数据库获取数据,并将数据填充到POJO类中,将所有记录的最终列表设置为请求属性,最后将请求转发到JSP页面。

您可以尝试使用专为访问JSP页面中的数据库而设计的

我已经分享了一种方法,以及可能对您有所帮助的示例代码


逻辑:只需从Servlet中的数据库获取数据,并在POJO类中填充数据,将所有记录的最终列表设置为请求属性,最后将请求转发到JSP页面。

假设您有一个相当标准的
ItemBean
(我将所有内容都设置为字符串,除了projectId)。然后,我可能会从DAO助手方法中的

private static List<ItemBean> queryForItems(
    Connection conn, int projectId) {
  PreparedStatement ps = null;
  ResultSet rs = null;
  // The Query is using a bind parameter
  final String ITEM_SQL = "SELECT * FROM Assignments WHERE Pid = ?";

  // This is the Diamond Operator... if pre Java 7, use new ArrayList<ItemBean>();
  List<ItemBean> al = new ArrayList<>();
  try {
    // Prepare the statement
    ps = conn.prepareStatement(ITEM_SQL);
    ps.setInt(1, projectId); // <-- bind the parameter
    rs = ps.executeQuery();
    while (rs.next()) { // <-- "Iterate" the ResultSet
      ItemBean ib = new ItemBean();
      ib.setPid(projectId);
      ib.setAid(rs.getString("Aid"));
      ib.setTitle(rs.getString("Title"));
      ib.setTask(rs.getString("Task"));
      ib.setUserId(rs.getString("UserID"));
    }
  } catch (SQLException se) {
    System.err.println("Error with " + ITEM_SQL + " and projectId = " + projectId);
    se.printStackTrace(System.err);
  } finally {
    // Clean up!
    try {
      rs.close();
    } catch (SQLException ignored) {
    }
    try {
      ps.close();
    } catch (SQLException ignored) {
    }
  }
  return al;
}
私有静态列表查询项(
连接连接,int projectd){
PreparedStatement ps=null;
结果集rs=null;
//查询正在使用绑定参数
最后一个字符串项_SQL=“从分配中选择*,其中Pid=?”;
//这是菱形运算符…如果是Java 7之前的版本,请使用新的ArrayList();
List al=新的ArrayList();
试一试{
//准备声明
ps=conn.prepareStatement(第项);

ps.setInt(1,projectId);//假设您有一个相当标准的
ItemBean
(我将所有内容都设置为字符串,除了projectId)。然后,我可能会从DAO帮助器方法中的

private static List<ItemBean> queryForItems(
    Connection conn, int projectId) {
  PreparedStatement ps = null;
  ResultSet rs = null;
  // The Query is using a bind parameter
  final String ITEM_SQL = "SELECT * FROM Assignments WHERE Pid = ?";

  // This is the Diamond Operator... if pre Java 7, use new ArrayList<ItemBean>();
  List<ItemBean> al = new ArrayList<>();
  try {
    // Prepare the statement
    ps = conn.prepareStatement(ITEM_SQL);
    ps.setInt(1, projectId); // <-- bind the parameter
    rs = ps.executeQuery();
    while (rs.next()) { // <-- "Iterate" the ResultSet
      ItemBean ib = new ItemBean();
      ib.setPid(projectId);
      ib.setAid(rs.getString("Aid"));
      ib.setTitle(rs.getString("Title"));
      ib.setTask(rs.getString("Task"));
      ib.setUserId(rs.getString("UserID"));
    }
  } catch (SQLException se) {
    System.err.println("Error with " + ITEM_SQL + " and projectId = " + projectId);
    se.printStackTrace(System.err);
  } finally {
    // Clean up!
    try {
      rs.close();
    } catch (SQLException ignored) {
    }
    try {
      ps.close();
    } catch (SQLException ignored) {
    }
  }
  return al;
}
私有静态列表查询项(
连接连接,int projectd){
PreparedStatement ps=null;
结果集rs=null;
//查询正在使用绑定参数
最后一个字符串项_SQL=“从分配中选择*,其中Pid=?”;
//这是菱形运算符…如果是Java 7之前的版本,请使用新的ArrayList();
List al=新的ArrayList();
试一试{
//准备声明
ps=conn.prepareStatement(第项);

ps.setInt(1,projectId);//假设您有一个相当标准的
ItemBean
(我将所有内容都设置为字符串,除了projectId)。然后,我可能会从DAO帮助器方法中的

private static List<ItemBean> queryForItems(
    Connection conn, int projectId) {
  PreparedStatement ps = null;
  ResultSet rs = null;
  // The Query is using a bind parameter
  final String ITEM_SQL = "SELECT * FROM Assignments WHERE Pid = ?";

  // This is the Diamond Operator... if pre Java 7, use new ArrayList<ItemBean>();
  List<ItemBean> al = new ArrayList<>();
  try {
    // Prepare the statement
    ps = conn.prepareStatement(ITEM_SQL);
    ps.setInt(1, projectId); // <-- bind the parameter
    rs = ps.executeQuery();
    while (rs.next()) { // <-- "Iterate" the ResultSet
      ItemBean ib = new ItemBean();
      ib.setPid(projectId);
      ib.setAid(rs.getString("Aid"));
      ib.setTitle(rs.getString("Title"));
      ib.setTask(rs.getString("Task"));
      ib.setUserId(rs.getString("UserID"));
    }
  } catch (SQLException se) {
    System.err.println("Error with " + ITEM_SQL + " and projectId = " + projectId);
    se.printStackTrace(System.err);
  } finally {
    // Clean up!
    try {
      rs.close();
    } catch (SQLException ignored) {
    }
    try {
      ps.close();
    } catch (SQLException ignored) {
    }
  }
  return al;
}
私有静态列表查询项(
连接连接,int projectd){
PreparedStatement ps=null;
结果集rs=null;
//查询正在使用绑定参数
最后一个字符串项\u SQL=“从分配中选择*,其中Pid