如何计算从数据库中找到的记录数并使用struts2在jsp页面中显示?

时间:2016-11-16 09:45:24

标签: java mysql jsp

        List<CommonDTO> subjectList = new ArrayList<CommonDTO>();
            try {

                pstmt = conn.prepareStatement(SLCMQueryConstant.SEARCH_SUBJECT);
                pstmt.setString(1, commonDTO.getSubjectName());
                pstmt.setString(2, commonDTO.getSubjectCode());

                if(commonDTO.getIsActive()==0){

                    pstmt.setInt(3, commonDTO.IsActive = 1 );

                }
                else{

                    pstmt.setInt(3, commonDTO.IsActive= 0);
                }

                rs = pstmt.executeQuery();
                int count = 0;
                while (rs.next()) {
                    count++;
                    CommonDTO commondto = new CommonDTO();
                    commondto.setSubjectId(rs.getInt("Subject_Id"));
                    commondto.setSubjectCode(rs.getString("Subject_Code"));
                    commondto.setSubjectName(rs.getString("SubjectName"));
                    commondto.setSubjectNameHindi(rs.getString("SubjectName_Hindi"));
                    commondto.setIsActive(rs.getInt("Is_Active"));
                    commondto.setViewcount(count);
                    subjectList.add(commondto);
                }
                System.out.println(count);
            }
        return subjectList;

    public static final String SEARCH_SUBJECT = new StringBuilder("").
    append(" SELECT Subject_Id,Subject_Code,SubjectName,SubjectName_Hindi,Is_Active").
        append(" FROM  M_Subject_Master WHERE   Subject_Id=IFNULL(NULL,Subject_Id) ").
        append(" AND (SubjectName IS NULL OR SubjectName LIKE CONCAT('%',?,'%'))"). 
        append(" AND (Subject_Code IS NULL OR Subject_Code LIKE CONCAT('%',?,'%'))").
        append(" AND Is_Active = ?  ").
        append(" ORDER BY SubjectName").toString();

JSP页面显示找到的记录数  =========================================

<s:iterator value="subjectList" var="quesvar" status="questat">
                    <s:hidden value="%{subjectId}" name="commonDTO.subjectId" id="subjectId"></s:hidden>
                    <td valign="top" class="style11" style="width: 20%;text-align:left">No.Of Records Found<s:property  value="subjectList[#questat.index].viewcount"/></td>
                        <tr class="item">
                        <td valign="top" class="style10" style="width: 10%;text-align:left"><s:property value="#questat.count"/></td>
                            <td valign="top" class="style11" style="width: 20%;text-align:left"><s:property  value="subjectList[#questat.index].subjectCode"/></td>
                            <td valign="top" class="style11" style="width: 20%;text-align:left"><s:property  value="subjectList[#questat.index].subjectName"/> </td>


                            <td valign="top" class="style11" style="width: 20%;"><a href="#" onClick="editSubject(<s:property  value="subjectList[#questat.index].subjectId"/>)" >View/Edit</a>

                        </tr>
                    </s:iterator>

如何计算数据库中的记录数并在jsp页面上打印? 我没有使用另一个prepare语句来计算如何在数据库中显示从jsp中获取的记录数。

2 个答案:

答案 0 :(得分:0)

在JSP文件中使用它可以打印大小

<s:property value ="subjectList.size()"/>

答案 1 :(得分:0)

您也可以直接从数据库中执行此操作。

在选择select SQL_CALC_FOUND_ROWS * from users

之后包括SQL_CALC_FOUND_ROWS

然后再次点燃Select FOUND_ROWS()

注意:只需使用相同的数据库连接器实例触发两个查询。

当您有大量行并且已应用限制时,这将对您有所帮助。在这种情况下,您将获得的总数不会超过限制。

例如,在mysql的任何用户界面中,当你第一次尝试打开一个表时,他们自己追加1000个记录的限制,但是在这种情况下,表格可能包含更多50000个记录。从数组列表中获取计数可能不会每次都为您提供总记录数。