[发明专利]一种Java存储过程简化数据库操作方法无效
申请号: | 201110344954.0 | 申请日: | 2011-11-01 |
公开(公告)号: | CN103092587A | 公开(公告)日: | 2013-05-08 |
发明(设计)人: | 杨际荣 | 申请(专利权)人: | 镇江华扬信息科技有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 212009 江苏省镇江市镇江新*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 java 存储 过程 简化 数据库 操作方法 | ||
技术领域
本发明涉及一种Java存储过程简化数据库操作方法,此技术主要是利用JAVA及数据库存储过程进行实现。
背景技术
基于Java的存储过程如何帮助简化商务逻辑、提高其性能,并扩展数据库的功能。Oracle如何在数据库内启用基于Java的存储过程。Java存储过程如何访问数据,以及如何创建基本Java存储过程。
选择PL/SQL还是Java在考虑Oracle存储过程时,可能会想到PL/SQL。Oracle已经在数据库中支持Java,从而为存储过程提供了不同于PL/SQL的开放式和可移植的方法。
妨碍存储过程广泛采用的一个主要障碍是不同数据库厂商使用各种专有的、且依赖于数据库的实现语言。
发明内容
基于上述问题,特此发明一种Java存储过程简化数据库操作方法;对于要求与SQL进行无缝集成的数据库中心来说则逻辑使用PL/SQL,从而完成对数据库对象、类型和特性的访问。
出于与数据库的无关性考虑时,可以选择Java作为开放式的语言来取代PL/SQL,同时也为了集成和沟通SQL、XML、J2EE和Web服务等各个领域。任何数据库对话期都可以在第一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 synonyms)中搜索。?loadjava-resolve<myclass>你可能需要指定不同的解析器,也可以在使用loadjava时强制进行解析,从而在布置时确定可能在以后运行时发生的任何问题。loadjava-resolve-resolver″((*SCOTT)(foo/bar/*OTHERS)(*PUBLIC))″Call Spec和存储过程调用为了从SQL中调用Java方法(以及从PL/SQ1和JDBC中调用),必须首先通过Call Spec发布公共静态方法,它为SQL定义方法采用的参数以及返回的SQL类型。在我们的例子中,我们将利用SQL*Plus连接到数据库,并为Hello.world()定义一个顶级Call Spec:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于镇江华扬信息科技有限公司,未经镇江华扬信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110344954.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于面向对象的VHDL语言实现方法
- 下一篇:连续捕鼠器