Java 选择“使用”查询;其中;子句不返回我的jsp表中的值

Java 选择“使用”查询;其中;子句不返回我的jsp表中的值,java,mysql,jsp,servlets,Java,Mysql,Jsp,Servlets,我试图从数据库中检索记录。到数据库的连接在eclipse上得到验证,但jsp表上没有更新任何信息。我使用servlet类进行调度,java类用于数据库复制(model)和显示表的jsp(view) 下面是MyUtils.dbAccess类,其中包含“forRecipient”方法` package myPackage.Utils; import java.sql.PreparedStatement; import java.sql.ResultSet; import j

我试图从数据库中检索记录。到数据库的连接在eclipse上得到验证,但jsp表上没有更新任何信息。我使用servlet类进行调度,java类用于数据库复制(model)和显示表的jsp(view)

下面是MyUtils.dbAccess类,其中包含“forRecipient”方法`

   package myPackage.Utils;

   import java.sql.PreparedStatement;
   import java.sql.ResultSet;
   import java.sql.SQLException;
   import java.util.ArrayList;
   import java.util.List;

   import javax.servlet.RequestDispatcher;

   import java.sql.Connection;

   import myPackage.beans.MatchTable;
   import myPackage.beans.PhedUser;
   import myPackage.beans.UserAccount;

   public class DbAcess {

    .
    .
    .


    public static MatchTable forRecipient(Connection conn, String 
    recipient) throws SQLException  {
    String  query   =   "SELECT payer, payerPhone, payerEmail FROM 
    match_table WHERE recipientAccName=?;";

    PreparedStatement   ps  =   conn.prepareStatement(query);

    ps.setString(1, recipient);

    ResultSet rs    =   ps.executeQuery();
    List    <MatchTable>     list   =   new ArrayList<MatchTable>();

    while(rs.next())    {
        String  payer   =   rs.getString("payer");
        String  payerPhone  =   rs.getString("payerPhone");
        String  payerEmail  =   rs.getString("payerEmail");


        MatchTable  payerDetails    =   new MatchTable();

        payerDetails.setPayer(payer);
        payerDetails.setPayerPhone(payerPhone);
        payerDetails.setPayerEmail(payerEmail);
        list.add(payerDetails);
    }
return  list;

}
然后,我在Servlet类中调用“dbaccess.forRecipient”方法,并请求dispatch以查看下面的jsp文件“ghTransactions”

我的stackTrace快照显示已成功连接到数据库

 Sat Apr 29 18:54:11 WAT 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
但是,即使存在匹配的详细信息,视图也不会填充记录

下面是ghTransactionView.jsp文件

  <section id="about">
    <div class="container">
  <div class="row">
    <center>
    <h3>Payer Details</h3>
    <table style="width:100%; padding:6px;" border="1" cellpadding="3" cellspacing="3">
        <tr>
            <th>&nbsp;Name</th>
            <th>&nbsp;Phone</th>
            <th>&nbsp;Email</th>
        </tr>
        <c:forEach items="${payer }" var="payerDetails">
        <tr>
            <td>${payerDetails.payer }</td>
            <td>${payerDetails.payerPhone }</td>
            <td>${payerDetails.payerEmail }</td>
        </tr>
    </table>
    </center>
    </div>
</div>
</section>

付款人详情
名称
电话
电子邮件
${payerDetails.payer}
${payerDetails.payerPhone}
${payerDetails.PayerMail}
我需要帮助,了解我哪里出了问题,以及为什么没有填充记录。
谢谢。

您没有收集查询的列表并将其传递给JSP,也就是说,
为收件人
返回的数据没有被使用

因此,您需要在
GHTransactionServlet
doGet()
方法中添加以下代码:

//Collect the returned list using a ref. variable
List<MatchTable> matchTableList =DbAcess.forRecipient(conn, recipientAccName);
//Now set the data to request scope so that JSP can access it
request.setAttribute("payer", matchTableList);
//使用ref.变量收集返回的列表
List matchTableList=dbaccess.forRecipient(conn,recipientAccName);
//现在将数据设置为请求范围,以便JSP可以访问它
setAttribute(“付款人”,matchTableList);
另外,重要的一点是,
request
scope
matchTableList
对象已使用键设置为
payer
,这与JSP中标记
c:forEach
items
属性相同

  <section id="about">
    <div class="container">
  <div class="row">
    <center>
    <h3>Payer Details</h3>
    <table style="width:100%; padding:6px;" border="1" cellpadding="3" cellspacing="3">
        <tr>
            <th>&nbsp;Name</th>
            <th>&nbsp;Phone</th>
            <th>&nbsp;Email</th>
        </tr>
        <c:forEach items="${payer }" var="payerDetails">
        <tr>
            <td>${payerDetails.payer }</td>
            <td>${payerDetails.payerPhone }</td>
            <td>${payerDetails.payerEmail }</td>
        </tr>
    </table>
    </center>
    </div>
</div>
</section>
//Collect the returned list using a ref. variable
List<MatchTable> matchTableList =DbAcess.forRecipient(conn, recipientAccName);
//Now set the data to request scope so that JSP can access it
request.setAttribute("payer", matchTableList);