Sql 将结果集结果保存在arraylist中

Sql 将结果集结果保存在arraylist中,sql,jsp,tomcat,jakarta-ee,jstl,Sql,Jsp,Tomcat,Jakarta Ee,Jstl,我很难完成我正在制作的web应用程序的一个功能 下面的代码似乎没有生成任何错误 //This is the trouver ( find ) function, code is related to DAO pattern. public ArrayList<Ticket> trouver( int id_employe ) throws DAOException { ArrayList<Ticket> liste = new ArrayList&

我很难完成我正在制作的web应用程序的一个功能

下面的代码似乎没有生成任何错误

    //This is the trouver ( find ) function, code is related to DAO pattern.
    public ArrayList<Ticket> trouver( int id_employe ) throws DAOException {
    ArrayList<Ticket> liste = new ArrayList<Ticket>();
    Connection connexion = null;
    PreparedStatement preparedStatement = null;
    ResultSet resultSet = null;
    Ticket ticket = null;

    try {
        connexion = daoFactory.getConnection();
        preparedStatement = initialisationRequetePreparee( connexion, SQL_SELECT_PAR_EMP, false, id_employe );
        resultSet = preparedStatement.executeQuery();

        if ( resultSet.next() ) {
            ticket = map( resultSet );//map function stores a row's result in a Bean.
            liste.add(ticket);
        }
    } catch ( SQLException e ) {
        throw new DAOException( e );
    } finally {
        fermeturesSilencieuses( resultSet, preparedStatement, connexion );
    }
    return liste;
}
//这是trouver(find)函数,代码与DAO模式相关。
公共ArrayList trouver(内部id_employe)引发异常{
ArrayList liste=新的ArrayList();
连接连接=null;
PreparedStatement PreparedStatement=null;
ResultSet ResultSet=null;
票证=空;
试一试{
connexion=daoFactory.getConnection();
preparedStatement=InitialisationRequetePrepare(连接、SQL选择、参数、EMP、false、id员工);
resultSet=preparedStatement.executeQuery();
if(resultSet.next()){
ticket=map(resultSet);//map函数将行的结果存储在Bean中。
列表添加(票据);
}
}捕获(SQLE异常){
抛出新的异常(e);
}最后{
热情(结果集、准备报表、连接);
}
返回列表;
}
通过servlet:

ArrayList<Ticket> lticket = ticketform.recupererTicket(request);
request.setAttribute("lticket", lticket);
this.getServletContext().getRequestDispatcher(VUE).forward(request, response);
ArrayList lticket=ticketform.recurpererticket(请求);
setAttribute(“lticket”,lticket);
this.getServletContext().getRequestDispatcher(VUE).forward(请求,响应);
当涉及到视图时,错误开始显示:

org.apache.jasper.JasperException: An exception occurred processing JSP page /ListeTickets.jsp at line 29
26: </tr>
27: <c:forEach items="${ requestScope.lticket }" var="mapticket">
28: <tr>
29: <c:forEach items="${mapticket}" var="ticket">
30: <td><c:out value="${ ticket.sujet }"/></td>
31: <td><c:out value="${ ticket.description }"/></td>
32: <td><c:out value="${ ticket.priorite }"/></td>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:588)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
org.apache.jasper.jaspereException:在第29行处理JSP页面/ListTickets.JSP时发生异常
26: 
27: 
28: 
29: 
30: 
31: 
32: 
堆栈跟踪:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:588)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)

长话短说,我有一个存储在ArrayList中的bean列表,需要两个循环来迭代整个数据,但是出现了错误。

根据您的代码,它应该只有一个
forEach

<c:forEach items="${ lticket }" var="ticket">
<tr>
<td><c:out value="${ ticket.sujet }"/></td>
<td><c:out value="${ ticket.description }"/></td>
<td><c:out value="${ ticket.priorite }"/></td>
</tr>
</c:forEach>


当然。。。谢谢你,亚历克斯。遗憾的是,它正在返回,但只有一张“票证”,您能确定这是否是存储SQL结果集的方式吗
尝试{resultSet=preparedStatement.executeQuery();if(resultSet.next()){ticket=map(resultSet);//map函数将行的结果存储在Bean.liste.add(ticket);}
中,我想您想使用
while(resultSet.next())
而不是
if