1.分页类
package org.zh.basic; /** * 页面类 * * @author keven * */ public class PageInfo { // 定义 private String p_tableName; // -表名 private String p_strWhere; // --查询条件 private String p_orderColumn; // --排序的列 private String p_orderStyle; // --排序方式 private int p_curPage; // --当前页 private int p_pageSize; // --每页显示记录条数 private int p_totalRecords; // --总记录数 private int p_totalPages; // --总页数 // / <summary> // / 定义函数 // / </summary> public PageInfo() { } public PageInfo(String p_tableName, String p_strWhere, String p_orderColumn, String p_orderStyle, int p_curPage, int p_pageSize, int p_totalRecords, int p_totalPages) { this.p_tableName = p_tableName; this.p_strWhere = p_strWhere; this.p_orderColumn = p_orderColumn; this.p_orderStyle = p_orderStyle; this.p_curPage = p_curPage; this.p_pageSize = p_pageSize; this.p_totalRecords = p_totalRecords; this.p_totalPages = p_totalPages; } public String getP_tableName() { return p_tableName; } public void setP_tableName(String pTableName) { p_tableName = pTableName; } public String getP_strWhere() { return p_strWhere; } public void setP_strWhere(String pStrWhere) { p_strWhere = pStrWhere; } public String getP_orderColumn() { return p_orderColumn; } public void setP_orderColumn(String pOrderColumn) { p_orderColumn = pOrderColumn; } public String getP_orderStyle() { return p_orderStyle; } public void setP_orderStyle(String pOrderStyle) { p_orderStyle = pOrderStyle; } public int getP_curPage() { return p_curPage; } public void setP_curPage(int pCurPage) { p_curPage = pCurPage; } public int getP_pageSize() { return p_pageSize; } public void setP_pageSize(int pPageSize) { p_pageSize = pPageSize; } public int getP_totalRecords() { return p_totalRecords; } public void setP_totalRecords(int pTotalRecords) { p_totalRecords = pTotalRecords; } public int getP_totalPages() { return p_totalPages; } public void setP_totalPages(int pTotalPages) { p_totalPages = pTotalPages; } }
2 调用
package org.zh.sys.server; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.ArrayList; import java.util.Map; import java.util.HashMap; import org.hibernate.Session; import org.zh.basic.PageInfo; import org.zh.dao.HibernateSessionFactory; import oracle.jdbc.driver.OracleTypes; import oracle.jdbc.OracleCallableStatement; public class GeneratePage { public GeneratePage() { } public static ArrayList Prc_Page(PageInfo page) { ArrayList list = new ArrayList(); Map mp; Session s = null; Connection conn = null; ResultSet rs = null; CallableStatement proc = null; try { s = HibernateSessionFactory.getSession(); conn = s.connection(); proc = conn.prepareCall("{call pages.prc_page(?,?,?,?,?,?,?,?,?)}"); proc.setString(1, page.getP_tableName()); proc.setString(2, page.getP_strWhere()); proc.setString(3, page.getP_orderColumn()); proc.setString(4, page.getP_orderStyle()); proc.setInt(5, page.getP_curPage()); proc.setInt(6, page.getP_pageSize()); proc.registerOutParameter(7, OracleTypes.NUMBER); proc.registerOutParameter(8, OracleTypes.NUMBER); proc.registerOutParameter(9, OracleTypes.CURSOR); proc.execute(); // page.setP_totalRecords(proc.getInt("p_totalRecords")); // page.setP_totalPages(proc.getInt("p_totalPages")); // list = (ArrayList) proc.getObject("v_cur"); page.setP_totalRecords(proc.getInt(7)); page.setP_totalPages(proc.getInt(8)); rs = ((OracleCallableStatement) proc).getCursor(9); // 得到输出结果集参数 ResultSetMetaData rsmd = rs.getMetaData(); int numberOfColumns = rsmd.getColumnCount(); while (rs.next()) { mp = new HashMap(numberOfColumns); for (int r = 1; r < numberOfColumns; r++) { mp.put(rsmd.getColumnName(r), rs.getObject(r)); } list.add(mp); } return list; } catch (SQLException ex) { ex.printStackTrace(); return list; } catch (Exception ex2) { ex2.printStackTrace(); return list; } finally { try { if (proc != null) { proc.close(); } if (rs != null) { rs.close(); } if (conn != null) { conn.close(); } } catch (SQLException ex1) { ex1.printStackTrace(); } } } }