📄 querypagebean.java
字号:
package struts.page;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.sql.DataSource;
import conn.DBConnection;
/**
* 使用特殊的SQL语句进行分页
*
* @author WZJ
*
*/
public class QueryPageBean {
/**
* 获得表中数据记录的个数
*
* @return totalRecord 表中的总记录数
*/
public static int getRowNumber(String sql) {
Connection conn = DBConnection.getConn();
int totalRecord = 0;
try {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
rs.next();
totalRecord = rs.getInt(1);
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null) {
try {
DBConnection.closeConn();
} catch (Exception e) {
e.printStackTrace();
}
}
}
return totalRecord;
}
/**
* 获得总的页数
*
* @param pageSize
* 每页显示的条数
* @return 返回总页数
*/
public static int getTotalPage(String sql,int pageSize) {
int totalPage = 1;
int tmpPage = 0;
int rowNum = getRowNumber(sql);
tmpPage = rowNum % pageSize;
if (tmpPage == 0) {
totalPage = rowNum / pageSize;
} else {
totalPage = (int)(Math.floor(rowNum / pageSize) + 1);
}
if (totalPage == 0) {
totalPage = 1;
}
return totalPage;
}
/**
* 得到一页的数据,并封装到集合中
*
* @param pageSize
* 每页显示的条数
* @param page
* 当前显示页
* @param sqlQueryPage
* 查询一页的特殊SQL语句
* @param sqlRowNumber
* 查询总条数的SQL语句
* @return 装有一页数据的结合对象
*/
// public static List getPageResult(int pageSize, int page,
// String sqlQueryPage, String sqlRowNumber) {
// List list = new ArrayList();
//
// int start = (page - 1) * pageSize;
// int end = page * pageSize;
// int rowNumber = getRowNumber(sqlRowNumber);// 得到总行数
// if (end > rowNumber)
// end = rowNumber;
//
// Connection conn = DBConnection.getConn();
// ResultSet rs = null;
// try {
// PreparedStatement pstmt = conn.prepareStatement(sqlQueryPage);
// pstmt.setInt(1, end);
// pstmt.setInt(2, start);
// rs = pstmt.executeQuery();
// while (rs.next()) {
//
// }
//
// } catch (SQLException e) {
// e.printStackTrace();
// } finally {
// if (conn != null) {
// try {
// DBConnection.closeConn();
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
// }
// return list;
// }
public static void main(String[] args) {
String queryPageSQL = "SELECT * FROM (SELECT row_.*,rownum rownum_ FROM "
+ "(SELECT * FROM emp ORDER BY empno) row_ WHERE rownum<=?) WHERE rownum_>?";
String rowNumberSQL = "SELECT count(*) as rowNumber FROM emp";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -