java調用oracle分頁存儲過程示例
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; // --每頁顯示記錄條數(shù)
private int p_totalRecords; // --總記錄數(shù)
private int p_totalPages; // --總頁數(shù)
// / <summary>
// / 定義函數(shù)
// / </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); // 得到輸出結果集參數(shù)
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();
}
}
}
}
- Java Spring動態(tài)生成Mysql存儲過程詳解
- 詳解java調用存儲過程并封裝成map
- MyBatis創(chuàng)建存儲過程的實例代碼_動力節(jié)點Java學院整理
- Java調用Oracle存儲過程詳解
- Java實現(xiàn)調用MySQL存儲過程詳解
- 詳解Java的JDBC API的存儲過程與SQL轉義語法的使用
- java編程調用存儲過程中得到新增記錄id號的實現(xiàn)方法
- Java調用MySQL存儲過程并獲得返回值的方法
- java調用mysql存儲過程實例分析
- Java中調用SQL Server存儲過程詳解
- java調用Oracle存儲過程的方法實例
- Java下使用Oracle存儲過程(詳解)
- Java存儲過程調用CallableStatement的方法
相關文章
Spring Boot基于Active MQ實現(xiàn)整合JMS
這篇文章主要介紹了Spring Boot基于Active MQ實現(xiàn)整合JMS,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-07-07SpringMVC中MultipartFile上傳獲取圖片的寬度和高度詳解
本篇文章主要介紹了SpringMVC中MultipartFile上傳獲取圖片的寬度和高度,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05SpringBoot+Mybatis實現(xiàn)登錄注冊的示例代碼
這篇文章主要介紹了SpringBoot+Mybatis實現(xiàn)登錄注冊的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03