Oracle数据库中如何快速查询分页

Oracle数据库中如何快速查询分页,第1张

1.rownum分页查询:select t2.* from (select t1.*,rownum as rn from table_name t1 where 1=1 and rownum <= page * page_size) t2 where t2.rn >(page - 1) * page_size2. row_number() over() 分页查询select t2.* from (select t1.*,row_number() over(order by column_name desc) as rn from table_name t1 where 1=1 )t2 where t2.rn >(page-1)* page_size and t2.rn <= page * page_size

create

or

replace

package

Tools

is

type

ResultData

is

ref

cursor

procedure

sp_Page(p_PageSize

int,

--每页记录数

p_PageNo

int,

--当前页码,从

1

开始

p_SqlSelect

varchar2,

--查询语句,含排序部分

p_SqlCount

varchar2,

--获取记录总数的查询语句

p_OutRecordCount

out

int,--返回总记录数

p_OutCursor

out

ResultData)

end

Tools

create

or

replace

package

body

Tools

is

procedure

sp_Page(p_PageSize

int,

--每页记录数

p_PageNo

int,

--当前页码,从

1

开始

p_SqlSelect

varchar2,

--查询语句,含排序部分

p_SqlCount

varchar2,

--获取记录总数的查询语句

p_OutRecordCount

out

int,--返回总记录数

p_OutCursor

out

ResultData)

as

v_sql

varchar2(3000)

v_count

int

v_heiRownum

int

v_lowRownum

int

begin

----取记录总数

execute

immediate

p_SqlCount

into

v_count

p_OutRecordCount

:=

v_count

----执行分页查询

v_heiRownum

:=

p_PageNo

*

p_PageSize

v_lowRownum

:=

v_heiRownum

-

p_PageSize

+1

v_sql

:=

'SELECT

*

FROM

(

SELECT

A.*,

rownum

rn

FROM

('||

p_SqlSelect

||')

A

WHERE

rownum

<=

'||

to_char(v_heiRownum)

||

'

)

B

WHERE

rn

>=

'

||

to_char(v_lowRownum)

--注意对rownum别名的使用,第一次直接用rownum,第二次一定要用别名rn

OPEN

p_OutCursor

FOR

v_sql

end

sp_Page

end

Tools

论文是以语言文字为信号,是传达信息的方式,下面我给大家分享一些论文中页码怎么设置的方法,大家快来跟我一起欣赏吧。

论文中页码怎么设置

一、 在菜单栏选择插入,进入页脚选项,在d出的窗口点击编辑页脚

二、接着在菜单栏会出现设计这一选项,点击页码,在d出的窗口选择页面底端,然后出现底端各种样式,一般选择居中的页码也就是选择普通数字2

三、点击普通数字2选项

四、有时我们的毕业论文需要用到其他的页码,而非普通的阿拉伯数字,这时就需要在页码选项点击设置页码格式选项

五、在页码格式窗口,选择编号格式,起始页码,点击确定.

六、最后在页脚就出现数字

关于java的论文范文

Oracle中基于Java的存储过程开发

摘要:存储过程是一种数据库对象,将执行计划存储在数据库的服务器中,它的执行速度比独立执行同样的程序要快。任何一个设计良好的数据库应用程序都应该用到存储过程。存储过程可以使得对数据库的管理、显示关于数据库及其用户信息的工作容易很多。文中详细分析了Java存储过程的开发步骤。

关键词:Java存储过程,Oracle9i数据库,Java函数

一、存储过程的介绍

1.存储过程的概念

存储过程是一种数据库对象,将执行计划存储在数据库的服务器中,它的执行速度比独立执行同样的程序要快。存储过程可以使得对数据库的管理、显示关于数据库及其用户信息的工作容易很多。存储过程可以包含数据流、逻辑以及对数据库的查询。在 Oracle9i 中应用开发人员除了可使用PL/SQL还可以使用 Java 来开发他们的业务逻辑,并将这个业务逻辑作为存储过程、函数和触发程序部署在数据库中。

当调用Java存储过程时,数据库会直接运行该存储过程,无需进行编译。相对于SQL语句或PL/SQL块而言,其执行速度更快。

2.设计存储过程的方针

(1)在定义存储过程时,要使用其完成单一、相对集中的任务。

(2)在定义存储过程时,不要定义已经由其它特征所提供功能的过程。例如,不要定义强制数据完整性的过程(使用完整性约束)。

3.存储过程的类型

Oracle9i 支持四种不同类型的存储过程,用PL/SQL或Java,都可以实现全部四种类型的存储过程。这四种存储过程类型是:存储过程、存储函数、数据库触发器和对象类型方法

4.存储过程的调用

在Oracle9i里,这四种存储程序类型的每一种,都可以从不同的调用环境调用,这些调用环境是:SQL语句或DML语句、顶级CALL语法、PL/SQL块、子程序(包)和触发器的隐式调用

二、教师信息管理系统中Java存储过程的开发和设计

1.创建Java存储过程的一般步骤

(1)Java存储过程的开发步骤:编写Java源代码、装载Java代码及类到Oracle9i数据库中 、生成调用说明和调用JSP。

要将Java方法转换为Java存储过程需要几个步骤,包括:用loadjava实用程序将Java类加载到数据库中,利用调用规范(Call Spec)发布Java方法,将Java方法、参数类型和返回类型映射到其SQL的对应部分。

(2)编写Java源代码

当开发Java存储过程时,首先应该编写Java源代码。

import…//导入Java类

public class p1//创建一个公用类

{

public static viod method a() //方法一

{

}

}

(3)装载Java代码及类到Oracle9i数据库中

在编写了Java源代码之后,接下来应该将Java代码及相应的Java类装载到Oracle9i数据库中。如图1所示:

图1 Oracle9i中的Java类

装载Java代码及类到RDBMS有以下两种方法:

?使用loadjava工具,通过该工具可以快速装载Java源代码(.java)、Java二进制代码(.class)以及Java打包文件(.jar)。

?使用CREATE Java、ALTER Java装载Java代码。

(4)生成调用说明

在装载了Java类之后计算机论文,接下来应该生成对public static方法的调用说明,最终完成Java存储过程的开发工作。

完成上述步骤之后,就完成了Java存储过程的开发工作,然后就可以调用并执行该Java存储过程了。

2.使用Java开发过程

过程用于执行某种 *** 作。需要注意的是,过程所对应的Java方法返回值必须为空(void)。本节以创建用于插入、修改和删除THEACHERS表的JSP为例,说明使用Java开发过程的方法。如图2所示:

图2使用Java开发过程示例

下面讲述完成上述任务的方法及过程:

(1)编写Java源代码

程序清单如下(manipulate_teachers.java):

import java.sql.*

import java.io.*

import oracle.jdbc.driver.*

public class manipulate_teachers {

public static void insert_teachers

(String code,Stringname,int sex,String birthdate,String entry_date_time)

throws SQLException {

/* 建立到数据库的缺省连接 */

Connection conn = newOracleDriver().defaultConnection()

/* 构造动态SQL语句 */

String sql ="INSERT INTO teachers

(teacher_code,name,sex,birthdate,entry_date_time)" +

"VALUES (?,?,?,?,?)"

/* 使用try ... catch语句抓取并抛出例外 */

try {

/* 准备动态SQL语句 */

PreparedStatement pstmt = conn.prepareStatement(sql)

/* 设置动态SQL参数值 */

pstmt.setString(1, code)

pstmt.setString(2, name)

pstmt.setInt(3, sex)

pstmt.setString(4, birthdate)

pstmt.setString(5,entry_date_time)

/* 执行动态SQL语句 */

pstmt.executeUpdate()

/* 关闭动态SQL语句 */

pstmt.close()

} catch (SQLException e) {}

}

public static void delete_teachers(String code)

throws SQLException {

Connection conn = newOracleDriver().defaultConnection()

String sql = "DELETEFROM teacherss WHERE teachers_code = ?"

try {

PreparedStatement pstmt = conn.prepareStatement(sql)

pstmt.setString(1, code)

pstmt.executeUpdate()

pstmt.close()

} catch (SQLException e) {}

}

public static void modify_salary(String code,float salary)

throws SQLException {

Connection conn = newOracleDriver().defaultConnection()

String sql = "UPDATEteachers SET salary = ? WHERE teacher_code = ?"

try {

PreparedStatement pstmt = conn.prepareStatement(sql)

pstmt.setFloat(1, salary)

pstmt.setString(2, code)

pstmt.executeUpdate()

pstmt.close()

} catch (SQLException e) {}

}

}

(2)装载Java代码及类到Oracle9i数据库中

在编写了Java源代码之后,就可以将Java对象装载到Oracle9i数据库中了。下面是完成这项任务的方法:

//设置环境变量classpath

setclasspath=c:\oracle\ora9l\jdbc\classeslll.zip

c:\oracle\ora9l\sqlj\runtime.zip

c:\oracle\ora9l\sqlj\translator.zip

loadjava-useraca/xtgtoup@xtdh-o-y-f-rd:\jsp\manipulateteachers.java

(3)发行Java,生成调用说明

在装载了Java类后,就可以发行该Java类,并生成调用其方法的过程说明了。下面是完成该项任务的方法:

①//登陆到数据库

Sqlplus aca/xtgroup@xtbdh

②create or replace procedure insert_teachers

(code varcharr2,namevarchar2,sex number

birthdatevarchar2,entry_date_time varchar2

)as language java name

‘mainpulate_auths.insert_teachers(java.lang.String,

Java.lang.String.int.java.lang.String.java.lang.String)’

③create or replace procedure delete_teachers(codevarchar2)

as language java name

‘manipulate_teachers.delete_teachers(java.lang.String)’

④create or replace procedure modify_salary

(code varchars2,salary number) aslanguage java name

‘manipulate_auths.midify_salary(java.lang.String,float)’

(4)调用JSP

在生成了调用Java方法的过程说明之后,我们就可以调用JSP了。例如:

//插入一条记录

call insert_teachers(‘A00012’,’张云’,1,’16-JUN-1968’,’16- JUN-2006’)

//修改教师的工资

callmodify_salary(‘A00012’,2000)

//删除教师记录

call delete_teachers(‘A00012’)

(5)分析

在这我们使用了Java存储过程,与PL/SQL相比,使用Java语言开发存储过程只被发送到数据库一次,相对于SQL语句或PL/SQL块而言,其网络通信量更小。而且当调用Java存储过程时,数据库会直接运行该存储过程,无需进行编译。相对于SQL语句或PL/SQL块而言,它省去了编译的时间,因此其执行速度更快。

3.使用Java开发函数

函数用于返回特定数据。可通过创建用于返回教师所教授的课程标题,以及课程数为例,说明使用Java开发函数的方法。

图3 使用Java开发函数示例

三、结束语

任何一个设计良好的数据库应用程序都应该用到存储过程。存储过程可以使得对数据库的管理、显示关于数据库及其用户信息的工作容易很多。存储过程可以帮助你在代码中分离逻辑.Oracle数据库与Java VM的集成可以创建可移植、功能强大和数据库无关的数据逻辑和持续性逻辑。Java语言具有更强大的运算能力,提供了更多的运算方法,可以应用于更多的数据库系统(如Sybase、DB2、Informix等等)。Java的存储过程可以解决不同数据库厂商使用各种专有的、且依赖于数据库的实现语言的问题。利用Java存储过程沟通SQL、XML、Java、J2EE和Web服务。

【参考文献】:

1.Kevin Loney,Marlene Theriault等著,蒋蕊,王磊等译.《Oracle 9i DBA手册》[M].北京:机械工业出版社,2005

2.丁岳伟,彭敦陆编著.《Java程序设计》[M].北京:高等教育出版社,2005

3.John Carnell等著,康博译.《Oracle 9i Java程序设计—使用PL/SQL和Java的解决方案》[M].北京:清华大学出版社,2002

4.周悦芝著.《OracleJ2EE应用开发》[M].北京:清华大学出版社,2005

5.王洪,朱锐.数据库存储过程设计及应用[M].《电子信息对抗技术》,2009年2期-

看了“论文中页码怎么设置”的人还看:

1. 论文的页码怎样设置

2. 论文的页码怎么设置

3. 毕业论文怎么设置页码呢

4. 论文页码怎么设置

5. 毕业论文的页码如何设置页码


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9900075.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存