java连接oracle数据库调用存储过程实现分页查询(emp为例)

第一步:建一个含游标类型的包

sql>create or replace package testPackage

as type test_cursor is ref cursor;    --定义名为test_cursor 的游标

end testPackage;

第二步:编写分页的存储过程

sql>create or replace procedure fenYe(

tableName in varchar2,--表名

pageSize in number,--每页显示的记录数

pageNow in number,--当前页

myRows out number,--总记录数

myPageCount out number,--总页数

P_cursor out testPackage.test_cursor--返回的记录集

) is

--定义部分 sql语句字符串,以及两个变量

v_sql varchar(1000);

v_begin number:=(pageNow-1)*pageSize+1;

v_end number:=pageSize*pageNow;

--执行部分

begin

v_sql:=‘select * from (select a1.*,rownum rn from (select * from ‘||tableName||‘) a1 where

rownum<=‘||v_end||‘) where rn>=‘||v_begin;

open P_cursor for v_sql;  --游标关联sql

v_sql:=‘select count (*) from ‘||tableName;

execute immediate v_sql into myRows;

if mod(myRows,pageSize)=0 then

myPageCount:=myRows/pageSize;

else

myPageCount:=myRows/pageSize+1;

end if;

close P_cursor;

end;

/

第三步 java调用该过程  记得引进jar 包

import java.sql.*;

public class fenYe {

public static void main(String [] args){

try{

Class.forName("oracle.jdbc.driver.OracleDriver");

Connection ct=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","scott","tiger");  // ORCL 位数据库名

CallableStatement cs=ct.prepareCall("{call fenYe(?,?,?,?,?,?)}");

//给?赋值

cs.setString(1,"emp");

cs.setInt(2,5);//每页显示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();//执行

int rowNum=cs.getInt(4);

int pageCount=cs.getInt(5);

ResultSet rs=(ResultSet)cs.getObject(6);

System.out.println("rowNum"+rowNum);

System.out.println("总页数:"+pageCount);

while(rs.next()){

System.out.println("编号:"+rs.getInt(1)+"名字:"+rs.getString(2));}

}catch(Exception e){

e.printStackTrace();}

}

}

时间: 2024-10-10 10:53:25

java连接oracle数据库调用存储过程实现分页查询(emp为例)的相关文章

java连接oracle数据库,关闭连接出现异常:java.sql.SQLRecoverableException: IO Error: Connection reset

java.sql.SQLRecoverableException: IO Error: Connection reset at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:612) at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:5094) at com.sms.send.StartTaskNew.run(SmsSend.java

一个非常标准的Java连接Oracle数据库的示例代码

最基本的Oracle数据库连接代码(只针对Oracle11g): 1.右键项目->构建路径->配置构建路径,选择第三项"库",然后点击"添加外部Jar",选择"D:\Oracle\app\oracle\product\11.2.0\server \jdbc\lib\ojdbc6_g.jar"(注:D:\Oracle为数据库的安装路径). 2.以下代码为非常标准的Oracle数据库连接代码示例: /** * 一个非常标准的连接Oracl

oracle入门(5)——java连接oracle数据库

[本文介绍] 前面几篇说了那么多,最终还没讲到如何用java连接数据库,本文实用一点,讲讲如何连接数据库. [java连接oracle数据库] 1.导入jdbc驱动:看到这里,就忙着上网找驱动?不,安装了oracle就有自带驱动了,路径在:安装目录\product\11.2.0\dbhome_1\jdbc\lib,下面有多个jar包,选择适合自己的一个(最简单的办法就是导入项目后看看能连接不,能连接的就是适合的驱动) 2.代码: 关于url:@后面是IP:端口,这两个不知道怎么查的请看博文:ht

java连接oracle数据库的实现代码

package connectionOracleDatabase; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class ConnectionOracleDa

Java连接Oracle数据库

package com.db;              import java.sql.Connection;       import java.sql.DriverManager;       import java.sql.PreparedStatement;       import java.sql.ResultSet;              public class DBConnection {           // 连接Oracle数据库           public

Java连接Oracle数据库常用方法

JDBC的六大步骤: 注册驱动 获取连接 获取执行sql语句对象 执行sql语句 处理结果集 关闭资源 oracle URL: jdbc:oracle:thin:@localhost:1521:SID jdbc:oracle:thin:@//localhost:1521:SERVICENAME MySQL URL: jdbc:mysql://localhost:3306/数据库名称 thin:小型驱动,驱动方式 localhost 本机ip地址 127.0.0.1 SID:数据库的SID SER

Java连接Oracle数据库的示例代码

最基本的Oracle数据库连接代码(只针对Oracle11g): 1.右键项目->构建路径 ->配置构建路径,选择第三项“库”,然后点击“添加外部Jar”,选择 “D:\Oracle\app\oracle\product\11.2.0\server \jdbc\lib\ojdbc6_g.jar”(注:D:\Oracle为数据库的安装路径). 2.以下代码为非常标准的Oracle数据库连接代码示例: /** * 一个非常标准的连接Oracle数据库的示例代码 */public void test

【转】一个非常标准的Java连接Oracle数据库的示例代码

原文地址: http://www.cnblogs.com/liuxianan/archive/2012/08/05/2624300.html 最基本的Oracle数据库连接代码(只针对Oracle11g): 1.右键项目->构建路径->配置构建路径,选择第三项“库”,然后点击“添加外部Jar”,选择“D:\Oracle\app\oracle\product\11.2.0\server \jdbc\lib\ojdbc6_g.jar”(注:D:\Oracle为数据库的安装路径). 2.以下代码为非

Java连接Oracle数据库开发银行管理系统【三、实现篇】

说明:里面的主要代码都加的有注释部分,所以代码显得很长,如果有错误的地方,谢谢指出. 注意需要导入数据库jar包 --------------------------------------------------------------------------------- 1. com.ll.test包下面类 1.1 test类 package com.ll.test; import com.ll.service.Bank; public class TestBank { public st