Java调用PL/SQL分页存储过程的代码示例是本文我们主要要介绍的内容,我们首先给出了PL/SQL分页的存储过程的代码,然后定义SQL语句和字符串,***介绍了Java调用的代码,接下来就让我们一起来了解一下这部分内容吧。

PL/SQL分页存储过程:

    createorreplaceprocedurefenye (tableNameinvarchar2,--表名 page_sizeinnumber,--每页显示记录数 pageNowinnumber,--当前页 myrowsoutnumber,--总记录数 myPageCountoutnumber,--总页数 my_cursoroutmy_new_pack.test_cursor--返回的结果集 )is

定义SQL 语句和字符串:

    v_sqlvarchar2(1000); v_beginnumber:=(pageNow-1)*page_size+1; v_endnumber:=pageNow*page_size; begin v_sql:='select*from(selectt1.*,rownumrnfrom(select*from'||tableName ||')t1whererownum<='||v_end||')wherern>='||v_begin; openmy_cursorforv_sql; v_sql:='selectcount(*)from'||tableName; executeimmediatev_sqlintomyrows; ifmod(myrows,page_size)=0then myPageCount:=myrows/page_size; elsemyPageCount:=myrows/page_size+1; endif; end;

JAVA调用代码:

    importjava.sql.*; publicclasstest{ /** *@paramargs */ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub Connectionconn=null; CallableStatementcs=null; ResultSetrs=null; try{ Class.forName("oracle.jdbc.driver.OracleDriver"); conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:kelvin111G2","system","MANAGER"); cs=conn.prepareCall("{callfenye(?,?,?,?,?,?)}"); cs.setString(1,"scott.emp"); cs.setInt(2,5); cs.setInt(3,2); cs.registerOutParameter(4,oracle.jdbc.OracleTypes.INTEGER); cs.registerOutParameter(5,oracle.jdbc.OracleTypes.INTEGER); cs.registerOutParameter(6,oracle.jdbc.OracleTypes.CURSOR); cs.execute(); System.out.println("总记录数为"+cs.getInt(4)); System.out.println("总页数"+cs.getInt(5)); rs=(ResultSet)cs.getObject(6); while(rs.next()){ System.out.println(rs.getInt(1)+"==="+rs.getString(2)+"==="+rs.getString(3)); } }catch(Exceptione){ e.printStackTrace(); }finally{ try{ rs.close(); cs.close(); conn.close(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } } }

关于Java调用PL/SQL分页过程的代码示例就介绍到这里了,希望本次的介绍能够对您有所帮助。

【编辑推荐】

    适合初学者的MySQL学习笔记之库操作示例适合初学者的MySQL学习笔记之表操作示例适合初学者的MySQL学习笔记之MySQL管理心得适合初学者的MySQL学习笔记之MySQL查询示例适合初学者的MySQL学习笔记之管理员常用操作总结