`
yingxiongwudi
  • 浏览: 57789 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

数据库操作语言

阅读更多
数据库操作语言大概可以分为三类:SQL、SQL专用语言、高级语言(Java、C)。
 SQL就不多说了,目前SQL的版本已经到了SQL3(SQL99)。主流的数据库厂商都支持SQL99核心标准。SQL99增加了一些新的高级特性:对象的支持、OLAP的支持、增强了完整性管理和动态数据库特征、放宽了对可更新视图的限制、多媒体的支持等等。
 SQL专用语言通常是指数据库厂商自行研发的基于过程的SQL语言,所以没有统一的标准。这些SQL专用语言广泛应用于存储过程、触发器、函数、脚本等的编写。主要的SQL专用语言有:PL/SQL(Oracle)、Transact-SQL(SQL Server)、PL/PGSQL(PostgreSQL)。数据库专用语言有一定的缺陷。第一,它们的功能/性能与成熟的高级语言(C、Java)有差距,例如缺乏操作系统底层接口,运行速度不快。(这里所说的运行速度不快不是说他们对数据库的访问不快,而是指他们作为程序设计语言本身运行速度不快;就像我们通常所说的C没有汇编快一样。当然这也是相对而言。专用的SQL没有C快,但是也没有Java那么慢,毕竟Java还需要一个VM。)不能直接访问OS的文件系统就是缺乏OS底层接口的最重要的一点,当然还有缺乏多线程的支持等等。第二,学习这些语言增加了开发人员的负担。Fortunately, there are many advanced programming languages supported by the DBMS venders.
 被给数据库厂商支持的高级语言有很多,而且不尽相同。目前来看,支持Java的数据库厂商比较多。由于Java是Internet和e-commerce的标准,所以数据库与Java的结合是未来的主流趋势。数据库与Java的结合产生了几个相关的利用Java来访问数据库的技术,包括有:JDBC、SQLJ、Java存储过程、触发器和函数、EJB等等。
 JDBC目前已经发展到3.0的版本,Sun发布的标准SQL支持都能支持JDBC1.0的特性。JDBC规范中2.0和3.0的特性往往需要数据库厂商的支持。JDBC是最简单的访问数据库的方式,也是最常用的方式。关于JDBC以后有机会我会专门撰文,^_^所以在此不多说。
 SQLJ是一种可以在Java语言中内嵌SQL语句的方式来访问数据库的技术。在Java以前,很多数据库厂商都提供了在C语言里面内嵌SQL语言的特性。SQLJ可以使Java代码轻易地嵌入SQL语句,与数据库交互。
 EJB这个议题放在这里实在是太大,所以一带而过。请另请高明。^_^
 最后我们来说说Java存储过程。在Oracle中可以直接将Java语言编写的程序编译到数据库中,作为procedures、functions或者trigger来供外部调用。当然其他的数据库厂商也几乎都能支持这样的访问方式。这种方式的好处很明显:编程容易、能够充分利用OS的接口、方便程序的移植、访问DB这部分代码能够得到重用。
 用Java开发Oracle存储过程的基本步骤如下:
 用IDE开发Java源代码 -> 编译和加载源代码 -> 创建数据库调用说明 -> 调用Java存储过程
 加载源代码:
 javaload -user username/password@sid JavaClassFileName.class
 创建数据库调用说明:
 create or replace procedure procedure_name
 as language java
 name 'ClassName.methodName()';
 调用Java存储过程的方式很多,最简单的调用方式就是在SQL Plus里面直接执行call命令:
 call procedure_name();
 Java存储过程还可以在外部的Java程序中调用和在PL/SQL存储过程中调用。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics