zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java调用oracle分页存储过程示例

JAVAOracle存储 示例 过程 调用 分页
2023-06-13 09:15:18 时间

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();
           }
       }
   }
}