java调用oracle分页存储过程示例
1.分页类
packageorg.zh.basic;
/**
*页面类
*
*@authorkeven
*
*/
publicclassPageInfo{
//定义
privateStringp_tableName;//-表名
privateStringp_strWhere;//--查询条件
privateStringp_orderColumn;//--排序的列
privateStringp_orderStyle;//--排序方式
privateintp_curPage;//--当前页
privateintp_pageSize;//--每页显示记录条数
privateintp_totalRecords;//--总记录数
privateintp_totalPages;//--总页数
///<summary>
///定义函数
///</summary>
publicPageInfo(){
}
publicPageInfo(Stringp_tableName,Stringp_strWhere,
Stringp_orderColumn,Stringp_orderStyle,intp_curPage,
intp_pageSize,intp_totalRecords,intp_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;
}
publicStringgetP_tableName(){
returnp_tableName;
}
publicvoidsetP_tableName(StringpTableName){
p_tableName=pTableName;
}
publicStringgetP_strWhere(){
returnp_strWhere;
}
publicvoidsetP_strWhere(StringpStrWhere){
p_strWhere=pStrWhere;
}
publicStringgetP_orderColumn(){
returnp_orderColumn;
}
publicvoidsetP_orderColumn(StringpOrderColumn){
p_orderColumn=pOrderColumn;
}
publicStringgetP_orderStyle(){
returnp_orderStyle;
}
publicvoidsetP_orderStyle(StringpOrderStyle){
p_orderStyle=pOrderStyle;
}
publicintgetP_curPage(){
returnp_curPage;
}
publicvoidsetP_curPage(intpCurPage){
p_curPage=pCurPage;
}
publicintgetP_pageSize(){
returnp_pageSize;
}
publicvoidsetP_pageSize(intpPageSize){
p_pageSize=pPageSize;
}
publicintgetP_totalRecords(){
returnp_totalRecords;
}
publicvoidsetP_totalRecords(intpTotalRecords){
p_totalRecords=pTotalRecords;
}
publicintgetP_totalPages(){
returnp_totalPages;
}
publicvoidsetP_totalPages(intpTotalPages){
p_totalPages=pTotalPages;
}
}
2调用
packageorg.zh.sys.server;
importjava.sql.CallableStatement;
importjava.sql.Connection;
importjava.sql.ResultSet;
importjava.sql.ResultSetMetaData;
importjava.sql.SQLException;
importjava.util.ArrayList;
importjava.util.Map;
importjava.util.HashMap;
importorg.hibernate.Session;
importorg.zh.basic.PageInfo;
importorg.zh.dao.HibernateSessionFactory;
importoracle.jdbc.driver.OracleTypes;
importoracle.jdbc.OracleCallableStatement;
publicclassGeneratePage{
publicGeneratePage(){
}
publicstaticArrayListPrc_Page(PageInfopage){
ArrayListlist=newArrayList();
Mapmp;
Sessions=null;
Connectionconn=null;
ResultSetrs=null;
CallableStatementproc=null;
try{
s=HibernateSessionFactory.getSession();
conn=s.connection();
proc=conn.prepareCall("{callpages.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);//得到输出结果集参数
ResultSetMetaDatarsmd=rs.getMetaData();
intnumberOfColumns=rsmd.getColumnCount();
while(rs.next()){
mp=newHashMap(numberOfColumns);
for(intr=1;r<numberOfColumns;r++){
mp.put(rsmd.getColumnName(r),rs.getObject(r));
}
list.add(mp);
}
returnlist;
}catch(SQLExceptionex){
ex.printStackTrace();
returnlist;
}catch(Exceptionex2){
ex2.printStackTrace();
returnlist;
}finally{
try{
if(proc!=null){
proc.close();
}
if(rs!=null){
rs.close();
}
if(conn!=null){
conn.close();
}
}catch(SQLExceptionex1){
ex1.printStackTrace();
}
}
}
}
相关文章
- 过程Oracle 存储过程执行实践(oracle执行存储)
- 掌握Oracle存储过程,展示学习成果(oracle存储过程学习)
- 利用Oracle实现安全可靠的数据存储(oracle的数据存储)
- 精通Oracle:数据引擎的秘密(oracle数据引擎)
- 优化Oracle数据库存储的管理技术(oracle数据库存储)
- 学习Oracle:存储过程教程(oracle存储过程教程)
- 精通 Oracle 触发器:不同类型的实现方式(oracle触发器类型)
- Oracle存储过程:快速学习指南(oracle简单存储过程)
- 解决Oracle存储中文乱码问题的有效方法(oracle存储中文乱码)
- Exploring the Impact of Oracle on the Career of Tech Entrepreneur He Ming(oracle何明)
- Oracle用户空间:收窄差距(oracle 用户 空间)
- 极速调用Oracle存储过程实现数据处理(调用oracle存储过程)
- 轻松调用Oracle数据库存储过程(调用oracle存储过程)
- 存储Oracle数据库:附加存储强劲驱动(oracle数据库附加)
- Oracle关库脚本快速安全关闭数据库(oracle关库脚本)
- Oracle减少硬解析之道(oracle 减少硬解析)
- Java模拟Oracle实现稳定数据库性能(java模仿oracle)
- Java加速Oracle开发之旅(java中oracle包)
- 看懂Oracle事务块千万别畏惧(oracle事务块)
- Oracle 主键实现安全有效的数据存储(oracle 主键生效)
- Oracle数据库节约时间高效代打(oracle代打)
- Oracle数据库中存储照片的技术实现(oracle中照片类型)
- 探索Oracle了解数据表中的内容(oracle中查看表数据)
- Oracle中AQ实现强大的消息处理功能(oracle中aq功能)