- 3
- 0
- 约1.08万字
- 约 6页
- 2017-08-23 发布于河南
- 举报
利用Java存储过程沟通SQL、XML、Java、J2EE与Web服务
利用Java存储过程沟通SQL、XML、Java、J2EE和Web服务。
利用Java存储过程沟通SQL、XML、Java、J2EE和Web服务。存储过程(stored procedure)允许将运行于数据库层中的持久性逻辑与运行于中间层中的商务逻辑有效地分离开来。这种分离可以降低整个应用程序的复杂性,并提供其重用性、安全性、性能和可伸缩性。 但是,妨碍存储过程广泛采用的一个主要障碍是不同数据库厂商使用各种专有的、且依赖于数据库的实现语言。使用基于Java的存储过程可以解决这一问题。Oracle已经实现了ANSI标准,这些标准规定了从SQL中将静态Java方法作为过程或函数进行调用的能力。这种实现被简单地称作Java存储过程。在本文中,你将了解基于Java的存储过程如何帮助简化商务逻辑、提高其性能,并扩展数据库的功能。本文将介绍Oracle如何在数据库内启用基于Java的存储过程。还会介绍Java存储过程如何访问数据,以及如何创建基本Java存储过程。 选择PL/SQL还是Java?
在考虑Oracle存储过程时,你可能会想到PL/SQL。不过,从Oracle8i开始,Oracle已经在数据库中支持Java,从而为存储过程提供了不同于PL/SQL的开放式和可移植的方法。我可以听到$64 000问题:我如何在PL/SQL和Java之间做出选择?我是否应当忘记已经学习的所有PL/SQL相关知识,而变为一个Java天地的新手? 。两种语言都适用于数据库编程,都有自己的优点和弱点。在决定选择哪一种语言时,可以参考下面根据经验得出的通用规则:
对于要求与SQL进行无缝集成的数据库中心来说则逻辑使用PL/SQL,从而完成对数据库对象、类型和特性的访问。
出于与数据库的无关性考虑时,可以选择Java作为开放式的语言来取代PL/SQL,同时也为了集成和沟通SQL、XML、J2EE和Web服务等各个领域。 OralceJVM使得Java可以运行在数据库中。
从Oracle8i版本1(Oralce8.1.5)开始,Oracle便提供紧密集成的Java虚拟机(JVM),JVM支持Oralce的数据库会话期结构。任何数据库对话期都可以在第一Java代码调用时启动一个虚拟上专用的JVM,后续的用户可以使用这一已经存在的支持Java的会话期。事实上,所有会话共享同一JVM代码并保持仅静态的私有状态,而垃圾则收集在单个对话期空间内,从而为各个Java对话期提供了和SQL操作相同的对话期隔离和数据完整性能力。这里,不需要为了数据完整性而进行单独的Java支持的过程。这一基于对话期的结构提供了较小的内存占用率,并使OracleJVM具有与Oracle数据库一样的线性SMP可伸缩性。 创建Java存储过程:
要将Java方法转换为Java存储过程需要几个步骤,包括:用loadjava实用程序将Java类加载到数据库中,利用调用规范(Call Spec)发布Java方法,将Java方法、参数类型和返回类型映射到其SQL的对应部分。下面部分说明如何完成这些步骤。 我将使用一个简单的Hello类,它有一个方法Hello.world(),返回字符串Hello world:public class Hello{?? public static String world ()?? {????? return Hello world;?? }}Loadjava 实用程序
Loadjava是加载Java源文件、Java类文件和Java资源文件的实用程序,它可以用来验证字节码,并将Java类和JAR文件布置到数据库中。它既可以通过命令行调用,也可以通过包含于DBMS_JAVA类中的loadjava()方法调用。为了加载我们的Hello.class示例,输入:
loadjava -user scott/tiger Hello.class从Oracle9i版本2开始,loadjava允许通过为包含在被处理的类中的方法创建相应的Call Specs来自动将Java类发布为存储过程。Oracle为开发、测试、调试和布置Java存储过程提供了Oracle9i JDeveloper。The Resolver Spec 基于JDK的JVM在列于CLASSPATH中的目录中查找类引用,并对其进行解析。因为Oracle数据库类存在于数据库模式中,所以OracleJVM利用数据库解析器(resolver)通过列于Resolver Spec中的模式查找并解析类引用。与CLASSPATH不同(CLASSPATH可以应用于所有的类),Resover Spec根据每类的情况进行应用。缺省解析器首先在加载类的模式中搜寻类,然后在公共同义词(public synonym
您可能关注的文档
- 全国计算机二级C语言程序设计讲义 函数调用与变量作用域.ppt
- 全国等考C语言2011年3月与9月真题,附答案.doc
- 全国高中数学联赛辅导常用解题方法与技巧(上篇)(三课时).ppt
- 全景成像技术现状与进展.pdf
- 全流通条件下上市公司兼并策略与其社会福利研究_一个不完全信息动态博弈分析框架.pdf
- 八下第六单元 第1课 祖国心脏 1.doc
- 全球图景中中国近代城市历史研究.pdf
- 八年级 黄金分割与相似图形 北师大版.doc
- 八年级数学第十一章11.2一次函数.ppt
- 八年级英语Would you mind turning down the music2.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 时速160公里动力集中动车组动力车(177页).pptx VIP
- 全国李氏家族字辈.pdf VIP
- 2025储能场站运营的价值定位、运营模式和收益示例-202508v3.pdf VIP
- 小学科学《斜面》优质课件.docx VIP
- 串联型感应加热电源的自动负载匹配技术.pdf VIP
- 2025年新课标《义务教育数学课程标准(2022年版)》测试题及答案.docx VIP
- 老年人谵妄中西医结合诊疗专家共识.pdf VIP
- 膨胀土基坑复合土钉墙试验研究.pdf VIP
- 2021年江苏省无锡市天一高级中学高二物理下学期期末试卷含解析.docx VIP
- 《贵州省公路工程施工监理电子招标文件示范文本(试行)》2025.docx VIP
原创力文档

文档评论(0)