`
boy00fly
  • 浏览: 197733 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Java调用Oracle数据库的分页存储过程

 
阅读更多

最近项目进度比较缓慢,初步研究了一下Oracle的存储过程,将代码贴出来。

首先先贴出来Oracle的分页分页存储过程代码吧。

1.这是包的代码

create or replace package DB_Oper is

-- Author : LIUBING
-- Created : 2009-10-28 15:01:30
-- Purpose : 测试Oracle的分页存储过程

-- Public type declarations
type ref_DataSet is REF CURSOR;


-- Public function and procedure declarations
function GetCount(mTableName varchar2, mTerm varchar2) return number;
procedure return_DataSet(
mTableName in varchar2, --表名
mTerm in varchar2, --条件
mPageSize in number, --每页显示记录数
mPageIndex in number, --当前页
mOrderField in varchar2, --排序字段
mOrderStyle in number, --排序方式 0 升序 1 降序
mTotalRecords out number, --总记录数
mDateSet out ref_DataSet --记录
);

end DB_Oper;

2.这是包体的代码

create or replace package body DB_Oper is

----- 获取记录数 ------
function GetCount(mTableName varchar2, mTerm varchar2) return number is
i number;
vSql varchar2(1000);
begin
i := 0;
vSql := 'select count(*) from ' || mTableName ;

if length(mTerm) > 0 then
vSql := vSql || ' where ' || mTerm;
end if;

execute IMMEDIATE vSql into i;

return(i);
end;

----- 数据分页 ----------
procedure return_DataSet(
mTableName in varchar2, --表名
mTerm in varchar2, --条件
mPageSize in number, --每页显示记录数
mPageIndex in number, --当前页
mOrderField in varchar2, --排序字段
mOrderStyle in number, --排序方式 0 升序 1 降序
mTotalRecords out number, --总记录数
mDateSet out ref_DataSet --记录集
) is
begin
declare
Invalid_Input Exception;
vSql varchar2(1000);
Start_page number;
End_page number;
n_PageIndex number;
n_PageSize number;
--mTotalRecords number;
begin
mTotalRecords := GetCount(trim(mTableName), trim(mTerm));
vSql := 'select * from ' || mTableName;
if length(trim(mTerm)) > 0 then
vSql := vSql || ' where ' || trim(mTerm) ;
end if;
if length(trim(mOrderField)) > 0 then
begin
vSql := vSql || ' order by ' || trim(mOrderField);
if morderStyle > 0 then
vSql := vSql || ' desc ';
end if;
end;
end if;

--
n_PageSize := mPageSize;
if mPageSize <= 0 then
n_PageSize := 10;
end if;
n_PageIndex := mPageIndex;
if mPageIndex <= 0 then
n_PageIndex := 1;
end if;
if mTotalRecords > 0 and n_PageIndex > 1 then
begin
--如果n_pageindex大于实际的页数,则取实际页数
if n_PageIndex > round((mTotalRecords / n_PageSize) + 0.5) then
n_PageIndex := round((mTotalRecords / n_PageSize) + 0.5);
end if;
end;
end if;
Start_page := (n_PageIndex - 1) * n_PageSize + 1;
End_page := n_PageIndex * n_PageSize;
vSql := 'SELECT * FROM (SELECT A.*, rownum r FROM ( ' || vSql || ' ) A WHERE rownum <= ' || End_page || ' ) B WHERE r >= '|| Start_page;

Open mDateSet for vSql;

exception
When Invalid_Input Then
open mDateSet for select null from dual;
end;
end return_DataSet;
end DB_Oper;

3.这是Java的测试代码

分享到:
评论

相关推荐

    java调用oracle分页存储过程

    Java调用Oracle分页存储过程是一项常见的数据库操作,尤其在处理大数据量时,为了提高查询效率和用户体验,分页查询显得尤为重要。Oracle数据库提供了一种高效的方法,即通过创建存储过程来实现分页功能,而Java作为...

    java连接Oracle分页显示

    在Java中,我们可以使用JDBC(Java Database Connectivity)来连接Oracle数据库并执行上述SQL语句或调用存储过程。以下是一个基本的示例: ```java import java.sql.*; public class OraclePagingExample { ...

    java oracle数据库过程实现jsp分页

    Oracle数据库提供了强大的存储过程功能,可以与Java后端配合,实现高效的分页查询。本篇文章将深入探讨如何利用Java与Oracle数据库过程相结合,实现在JSP页面上的分页展示。 首先,Oracle函数包是组织相关函数和...

    java Oracle存储过程分页整理

    Oracle数据库提供了丰富的存储过程功能,使得开发者可以编写自定义的SQL逻辑,结合Java调用来实现复杂的数据处理。本教程将深入探讨如何在Java中调用Oracle存储过程来执行分页查询。 首先,我们需要理解分页的基本...

    毕业设计-源码Java调用Oracle存储过程实现分页功能

    在这个毕业设计项目中,我们主要探讨的是如何使用Java语言调用Oracle数据库的存储过程来实现分页功能,这在Web应用程序中非常常见,尤其是在处理大数据量时,为了提高用户体验,分页是一种有效的数据展示方式。...

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

    ### Java调用Oracle存储过程与分页示例详解 #### 一、无返回值的存储过程调用 在Java中调用Oracle存储过程时,若该过程无返回值,主要利用`CallableStatement`对象来执行。以下是一个具体的示例: ##### 存储过程...

    oracle 数据库 plsql 存储过程

    - **使用Java调用**:通过Java API可以调用Oracle存储过程。 - **无返回值的存储过程**:直接使用`CallableStatement`执行。 - **有返回值的存储过程**:使用`CallableStatement`的`registerOutParameter`方法注册...

    Java获取Oracle存储过程返回的Cursor

    在Java编程中,有时我们需要调用Oracle数据库的存储过程,特别是当存储过程返回一个游标(Cursor)时,这种情况在处理大量数据或者分页查询时很常见。游标允许我们逐行处理结果集,而无需一次性加载所有数据,这对于...

    java实现增删改查使用Oracle数据库

    Oracle数据库提供了一些特有的函数和特性,例如游标、存储过程、触发器等。在Java中,可以调用CallableStatement来执行存储过程。 八、最佳实践 1. 使用PreparedStatement而非Statement,提高性能和安全性。 2. ...

    java调用存储过程.txt

    根据提供的文件信息,我们可以归纳出以下关于Java调用Oracle存储过程的关键知识点: ### 一、Java连接Oracle数据库 为了能够调用Oracle存储过程,首先需要建立Java程序与Oracle数据库之间的连接。这通常通过JDBC...

    Java Oracle数据库开发指南

    Java还可以通过CallableStatement调用Oracle的存储过程。存储过程是预编译的SQL语句集合,可以提高性能并封装复杂的业务逻辑。 七、连接池管理 在实际应用中,使用连接池如C3P0、HikariCP或Apache DBCP等管理数据库...

    oracle调用存储过程实现分页

    存储过程是Oracle数据库中预编译的SQL语句集合,它可以封装复杂的业务逻辑,提高执行效率。本篇文章将深入探讨如何在Oracle中通过调用存储过程实现分页功能。 首先,我们需要创建一个存储过程,这个过程将接收两个...

    Java Oracle实现分页功能.pdf

    接下来,文章将深入介绍如何在Oracle数据库中通过编写存储过程来实现分页功能。存储过程是一种在数据库中编译并存储的过程或函数,可以在数据库服务器上直接执行。由于它在数据库中运行,可以减少网络传输的数据量,...

    初学SpringCloud连接Oracle数据库

    在初学SpringCloud的过程中,与Oracle数据库的连接是构建分布式系统的一个重要环节。SpringCloud作为一个微服务框架,提供了丰富的服务治理功能,而数据库作为数据存储的核心,与SpringBoot的集成使得我们可以轻松...

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

    本示例将详细解释如何通过Java调用Oracle的分页存储过程。 首先,我们需要了解分页的基本概念。分页是数据库查询的一种常见策略,用于限制每次查询返回的数据量,提高用户体验,特别是处理大数据集时。在这个示例中...

    毕业设计jsp+Sturts+hibernate的添删改查以及分页!采用Oracle数据库

    采用Oracle数据库" 是一个基于Web的新闻管理系统,它利用了Java Web技术栈中的核心组件,包括JSP(JavaServer Pages)、Struts、Hibernate,以及数据库管理工具Oracle。这个系统的主要功能是实现对新闻数据的添加、...

    Java中如何调用Oracle的5个小视频.rar

    本教程通过五个小视频,详细讲解了如何在Java环境中高效地调用Oracle数据库的各种功能,包括存储过程、分页查询以及游标和包的使用。以下是对每个视频内容的详细解读: 1. **JAVA中调用分页.wmv** 分页查询在大...

    java Oracle数据库

    源码部分可能包含示例,如如何执行CRUD(创建、读取、更新、删除)操作,如何处理批处理,如何调用存储过程,或者如何使用游标(Cursors)进行分页查询。在处理大量数据时,使用PreparedStatement批量处理SQL语句...

    利用存储过程分页,使用oracle数据库

    在Oracle数据库中,存储过程是预编译的SQL语句集合,它们封装了特定的数据库操作,可提高性能,减少网络流量,并提供更安全的数据访问。分页是数据查询时常用的一种技术,尤其是在大型应用程序中,它允许用户按页...

    通过Web服务连接Oracle数据库.rar

    OWSM使得Oracle数据库能够作为Web服务提供者,允许外部应用通过HTTP或HTTPS协议来调用存储过程、函数等数据库操作。 要通过Web服务连接Oracle数据库,你需要遵循以下步骤: 1. **配置Oracle数据库**:确保Oracle...

Global site tag (gtag.js) - Google Analytics