- <%@ page contentType="text/html; charset=UTF-8" %>
- <%@ page language="java"%>
- <%@ page import="java.sql.*"%>
- <%!public int nullIntconvert(String str) {
- int num = 0;
- if (str == null) {
- str = "0";
- } else if ((str.trim()).equals("null")) {
- str = "0";
- } else if (str.equals("")) {
- str = "0";
- }
- try {
- num = Integer.parseInt(str);
- } catch (Exception e) {
- }
- return num;
- }%>
- <%
- Connection conn = null;
- Class.forName("com.mysql.jdbc.Driver").newInstance();
- conn = DriverManager.getConnection(
- "jdbc:mysql://localhost:3306/jpetstore", "root", "root");
- ResultSet rs1 = null;
- ResultSet rs2 = null;
- PreparedStatement ps1 = null;
- PreparedStatement ps2 = null;
-
- int showRows = 2;
- int totalRecords = 5;
- int totalRows = nullIntconvert(request.getParameter("totalRows"));
- int totalPages = nullIntconvert(request.getParameter("totalPages"));
- int iPageNo = nullIntconvert(request.getParameter("iPageNo"));
- int cPageNo = nullIntconvert(request.getParameter("cPageNo"));
-
- int startResult = 0;
- int endResult = 0;
- if (iPageNo == 0) {
- iPageNo = 0;
- } else {
- iPageNo = Math.abs((iPageNo - 1) * showRows);
- }
- String query1 = "SELECT SQL_CALC_FOUND_ROWS * FROM jpetstore.item LIMIT "
- + iPageNo + "," + showRows + "";
- ps1 = conn.prepareStatement(query1);
- rs1 = ps1.executeQuery();
-
- String query2 = "SELECT FOUND_ROWS() as cnt";
- ps2 = conn.prepareStatement(query2);
- rs2 = ps2.executeQuery();
- if (rs2.next()) {
- totalRows = rs2.getInt("cnt");
- }
- %>
- <html>
- <h3>Pagination of JSP pageh3>
- <body>
- <form>
- <input type="hidden" name="iPageNo" value="<%=iPageNo%>"> <input
- type="hidden" name="cPageNo" value="<%=cPageNo%>"> <input
- type="hidden" name="showRows" value="<%=showRows%>">
- <table width="100%" cellpadding="0" cellspacing="0" border="1">
- <tr>
- <td>ItemIDtd>
- <td>ProductIDtd>
- <td>listPricetd>
- <td>unitCosttd>
- tr>
- <%
- while (rs1.next()) {
- %>
- <tr>
- <td><%=rs1.getString("itemid")%>td>
- <td><%=rs1.getString("productId")%>td>
- <td><%=rs1.getDouble("listprice")%>td>
- <td><%=rs1.getDouble("unitcost")%>td>
- tr>
- <%
- }
- %>
-
-
- table>
- <%
- try {
- if (totalRows < (iPageNo + showRows)) {
- endResult = totalRows;
- } else {
- endResult = (iPageNo + showRows);
- }
- startResult = (iPageNo + 1);
- totalPages = ((int) (Math.ceil((double) totalRows / showRows)));
- } catch (Exception e) {
- e.printStackTrace();
- }
- %>
-
- <div>
- <%
- int i = 0;
- int cPage = 0;
- if (totalRows != 0) {
- cPage = ((int) (Math.ceil((double) endResult
- / (totalRecords * showRows))));
-
- int prePageNo = (cPage * totalRecords)
- - ((totalRecords - 1) + totalRecords);
- if ((cPage * totalRecords) - (totalRecords) > 0) {
- %>
- <a
- href="pagination.jsp?iPageNo=<%=prePageNo%>&cPageNo=<%=prePageNo%>">
- < Previousa>
- <%
- }
- for (i = ((cPage * totalRecords) - (totalRecords - 1)); i <= (cPage * totalRecords); i++) {
- if (i == ((iPageNo / showRows) + 1)) {
- %>
- <a href="pagination.jsp?iPageNo=<%=i%>"
- style="cursor: pointer; color: red"><b><%=i%>b> a>
- <%
- } else if (i <= totalPages) {
- %>
- <a href="pagination.jsp?iPageNo=<%=i%>"><%=i%>a>
- <%
- }
- }
- if (totalPages > totalRecords && i < totalPages) {
- %>
- <a href="pagination.jsp?iPageNo=<%=i%>&cPageNo=<%=i%>">
- Next >a>
- <%
- }
- }
- %>
- <b>Rows <%=startResult%> - <%=endResult%> Total Rows <%=totalRows%>
- b>
- div>
-
- form>
- body>
- html>
- <%
- try {
- if (ps1 != null) {
- ps1.close();
- }
- if (rs1 != null) {
- rs1.close();
- }
-
- if (ps2 != null) {
- ps2.close();
- }
- if (rs2 != null) {
- rs2.close();
- }
-
- if (conn != null) {
- conn.close();
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- %>
-
- create table if not exists item (
- itemid varchar(10) not null,
- productid varchar(10) not null,
- listprice decimal(10,2) null,
- unitcost decimal(10,2) null,
- supplier int null,
- status varchar(2) null,
- attr1 varchar(80) null,
- attr2 varchar(80) null,
- attr3 varchar(80) null,
- attr4 varchar(80) null,
- attr5 varchar(80) null,
- primary key (itemid) )
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-1','FI-SW-01',16.50,10.00,1,'P','Large');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-2','FI-SW-01',16.50,10.00,1,'P','Small');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-3','FI-SW-02',18.50,12.00,1,'P','Toothless');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-4','FI-FW-01',18.50,12.00,1,'P','Spotted');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-5','FI-FW-01',18.50,12.00,1,'P','Spotless');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-6','K9-BD-01',18.50,12.00,1,'P','Male Adult');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-7','K9-BD-01',18.50,12.00,1,'P','Female Puppy');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-8','K9-PO-02',18.50,12.00,1,'P','Male Puppy');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-9','K9-DL-01',18.50,12.00,1,'P','Spotless Male Puppy');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-10','K9-DL-01',18.50,12.00,1,'P','Spotted Adult Female');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-11','RP-SN-01',18.50,12.00,1,'P','Venomless');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-12','RP-SN-01',18.50,12.00,1,'P','Rattleless');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-13','RP-LI-02',18.50,12.00,1,'P','Green Adult');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-14','FL-DSH-01',58.50,12.00,1,'P','Tailless');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-15','FL-DSH-01',23.50,12.00,1,'P','With tail');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-16','FL-DLH-02',93.50,12.00,1,'P','Adult Female');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-17','FL-DLH-02',93.50,12.00,1,'P','Adult Male');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-18','AV-CB-01',193.50,92.00,1,'P','Adult Male');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-19','AV-SB-02',15.50, 2.00,1,'P','Adult Male');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-20','FI-FW-02',5.50, 2.00,1,'P','Adult Male');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-21','FI-FW-02',5.29, 1.00,1,'P','Adult Female');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-22','K9-RT-02',135.50, 100.00,1,'P','Adult Male');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-23','K9-RT-02',145.49, 100.00,1,'P','Adult Female');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-24','K9-RT-02',255.50, 92.00,1,'P','Adult Male');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-25','K9-RT-02',325.29, 90.00,1,'P','Adult Female');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-26','K9-CW-01',125.50, 92.00,1,'P','Adult Male');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-27','K9-CW-01',155.29, 90.00,1,'P','Adult Female');
- INSERT INTO item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES ('EST-28','K9-RT-01',155.29, 90.00,1,'P','Adult Female');

