SQLJ简介

JAVA SQLJ 开发指南 立即下载
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> SQLJ简介   SQLJ是一个与Java编程语言紧密集成的嵌入式SQL的版本,这里"嵌入式SQL"是用来在其宿主通用编程语言如C、C++、Java、Ada和COBOL)中调用SQL语句。在一个嵌入式SQL程序中,SQL语句可以像其宿主语言中的程序构造一样得到支持。当然,C和C++也可以通过宿主语言函数调用,即通过开放数据库连接接口(ODBC)调用SQL语句。与此相似,Java程序可以通过Java数据库连接(JDBC)方法调用来调用SQL语句。但是,我们会看到,这一类的函数调用接口较之嵌入式SQL接口是一个水平相当低的程序接口。因为这时的SQL语句是作为字符串参数传送给函数而不是直接在宿主语言中嵌入代码的。   Oracle8i是Oracle关系型数据库管理系统(OracleRDBMS)的最新版本,在此版本中,特别强调了Java编程语言和Internet/Intranet数据库应用程序的开发。Oracle8i的重要的特性之一就是全面和高效地支持SQLJ。与Oracle8一样,Oracle8i不仅提供对关系型数据库处理的强有力的支持,同时还支持一些对象-关系型结构,如集合类型、用户定义类型和对象类型。   SQLJ由一系列定义了SQL与Java之间相互作用的子句和程序扩充组成。SQLJ是在Java编程语言中静态嵌入式SQL,换句话说,一个SQLJ程序是一个包含静态嵌入式SQL语句的Java程序。请注意,在静态嵌入式SQL中,所有嵌入到程序中的SQL语句在编译时都是已知的。而在动态嵌入式SQL中,至少有一些SQL语句是等到运行时才被确定的。SQLJ通过这种静态嵌入式SQL模型完善了JDBC动态嵌入式SQL模型,这是因为JDBC只提供给Java一个动态嵌入式SQL接口,而SQLJ提供了一个静态嵌入式SQL接口。从此,通过使用SQLJ,Java程序员们在Java和SQL之间有了两种不同的程序接口:JDBC和SQLJ。其他编程语言,诸如C、C++、FORTRAN、COBOL和Ada基本上使用同一种嵌入式SQL,而SQLJ作为一个与ANSI标准多少有些不同的嵌入式SQL一直为Java所专用。这就引出了一个问题:为什么唯独Java有其自己的嵌入式SQL,而其他的编程语言共用一个嵌入式SQL?原因之一是SQLJ与Java的紧密耦合,特别是Java类可在SQL表中作为字段类型使用。还有,SQLJ提供了游标结构的一种强类型版本,又称为迭代器,这种迭代器结构巧妙地集成到Java语言中,每一个迭代器是一个Java类。同时要注意的是,与SQLJ不同,其他编程语言的嵌入式SQL同时包括静态和动态SQL构造。   SQLJ作为一个新的标准的出现是多个厂商共同努力以求在Java程序中提供对静态嵌入式SQL支持的结果。正如我们所看到的,一个"纯"SQLJ程序是静态的,因为所有的SQL语句都必须在编译以前确定。但是,在一个SQLJ语句之内包含JDBC调用会使该程序成为动态的,因为程序可将SQL语句组织成一个字符串,然后将该字符串传送给JDBC方法去执行。SQLJ可用来在JServer环境下执行存储过程、触发器和类,也可用于Enterprise JavaBeans和CORBA. SQLJ由一系列子句组成,这些子句扩展了Java程序。语言的标准说明是一个联合说明,它由包括IBM、Compaq/Tandem、JavaSoft、Oracle、Sybase和Informix在内的主要数据库工具厂商和数据库厂商所联合支持。SQLJ提供了在访问数据库的客户端和中间件以及在利用Java的数据服务器端开发应用程序的方法。SQLJ应用程序是可移植的,并且可以使用标准JDBC驱动程序与多厂商的数据库进行通信。   当编写一个SQLJ程序(源代码)时,所编写的是一个Java程序并按一定的语法规则嵌入式SQL语句,这套语法规则说明了怎样将SQL语句嵌入到Java源代码中。然后运行一个SQLJ翻译器将SQLJ程序转换为一个标准Java程序。一个Oracle SQLJ翻译器在原理上与其他Oracle 嵌入式SQL预编译器类似。SQLJ翻译器完成下列工作: * 对嵌入式SQL构造进行语法检查。 * Java和SQL数据类型检查。 * 模式检查。   翻译时,SQL翻译器用SQLJ运行时库中的调用来替代嵌入式SQLJ语句,该运行时库真正实现SQL操作。这样翻译的结果是得到一个可使用任何Java翻译器进行编译的Java源程序。一旦Java源程序被编译,Java执行程序就可在任何数据库上运行。 SQLJ运行环境由纯Java实现的小SQLJ运行时库(小,意指其中包括少量的代码)组成,该运行时库转而调用相应数据库的JDBC驱动程序。   一个SQLJ程序可以在多种环境下运行。所编写的SQLJ程序可以在客户端进行,不管是在瘦客户端如Web浏览器和网络计算机上,还是在一个工作站或PC上。由于这种位置的透明性,使得用户可以很方便地将SQLJ程序从一个地方移植到另一个地方或从一个系统移植到另一个系统。
新手小白如何学习编程 学习目标推荐第一门语言优势网站 / APP 开发(前端)JavaScript浏览器原生支持,能快速做出可视化效果后端 / 服务器 / 数据分析Python语法简洁像英语,库多、应用广(入门友好)游戏开发先用电竞入门,再转专业引擎硬件 / 嵌入式(比如单片机)C 语言贴近硬件,行业标准办公自动化(Excel / 文档处理)Python快速解决重复工作(比如批量改文件)👉新手首选推荐。 阅读详情

相关推荐

【芯片验证随心记】1.SystemVerilog中,rand和randc的区别?如何用constraint实现randc?

在SystemVerilog里,randc 的“不重复循环”特性是用一个 周期性排列器(permutation engine) 实现的,而这个引擎在 LRM 里并没有公开。我们只能在 “用户空间” 用 rand + constraint 去模仿它的行为。每次随机化只取 queue.pop_front(),用完再洗。在4次随机化内,y会依次出现0,1,2,3各一次(顺序随机)每次随机化,x可能是0-3中的任意值,可能连续多次相同。每次随机化时,在未使用的值里随机挑一个;第5次随机化时,重新生成新的排列周期。

qq_43172512的博客 342

SQLJ是什么?优点?

SQLJ 是一种允许把静态的 SQL 语句以文本形式嵌入 Java 程序中的语言。在写一个 SQLJ 应用程序时,我们编写一段 Java 程序然后遵循某些特定的标准法则把 SQL 语句嵌入在其中,这些法则定义了 SQL 语句怎样写入 Java 程序(具体情况请看 Oracle 8i SQLJ 开发指南与参考 , 你...

apusic 494

揭秘Synopsys EDA中的AI黑科技:DSO.ai如何改变传统芯片设计流程

本文深入探讨了Synopsys EDA中的AI黑科技DSO.ai如何革新传统芯片设计流程。通过数据驱动的方法论、功耗优化革命和时序收敛智能加速,DSO.ai显著提升了设计效率和质量,实现了从经验驱动到AI驱动的范式转变。文章还提供了实战指南,帮助团队跨越AI EDA的实施鸿沟。

weixin_29296241的博客 527

用SQLJ开发数据库

用SQLJ开发数据库 发布时间:2007-5-20 14:40:01  

河之堤 1492

60、新型共轴直升机建模与事件触发积分强化学习研究

本文研究了新型共轴直升机的动力学建模与控制方法,基于牛顿-欧拉方程建立了6自由度非线性模型,并设计了四通道闭环控制器实现稳定飞行。同时,提出一种事件触发积分强化学习方法,用于解决非零和博弈中的最优跟踪控制问题,在减少通信开销的同时保证系统性能。通过仿真验证了控制器的轨迹跟踪能力,并证明了算法下跟踪误差与神经网络权重估计误差的一致最终有界性。两种方法协同可提升飞行器的自主性与鲁棒性,未来可拓展至多智能体协作、智能交通等复杂系统应用。

rl6adventurer的博客 118

[QMT量化交易小白入门]-二十四、年化收益47%的全球核心资产轮动策略(含代码解析)

m_days = 25 #动量参考天数period=200m_days被设置为25,表示动量参考的天数为25天;period被设置为200,用于指定获取市场数据的周期长度。

木头大左的博客 2973

使用SQLJ进行数据库开发 第二部分:SQLJ语言元素

在我的第一篇文章中,我描述了什么是SQLJ,把它同PL/SQL和JDBC进行了比较,并分析了从SQLJ获得的好处。在这篇文章中,我阐述了SQLJ编程语言的基本原理,这样你能做好准备,以使用真正的SQLJ。        SQLJ程序是嵌入了SQL语句的标准Java程序,这些SQL语句从#sql标记开始,到分号结束。有两种SQLJ语句:声明和可执行语句。        声明语句宣布连接环境和迭代器。

herrcx的专栏 1428

面试问题总结——关于OpenCV(一)

整理了一下网上和我面试中遇到的关于OpenCV相关的问题。 其中因为我的简历中有个项目用到了特征点检测相关的知识,所以整理了SIFT/SURF和FLANN。 有些知识点也不深入,对于写的不对的地方,欢迎指正。 关于OpenCV的内容 1.OpenCV中cv::Mat的深拷贝和浅拷贝问题   深拷贝:分配新内存的同时拷贝数据,当被赋值的容器被修改时,原始容器数据不会改变。   浅拷贝:仅拷贝数据,当被赋值容器修改时,原始容器数据也会做同样改变。 OpenCV的Mat时,有几种赋值方式分别为:   深.

boss-dog 1万+

【新闻翻译】Java JDBC 执行 DDL 和 SQLJ 存储过程

Java JDBC 执行 DDL 和 SQLJ 存储过程 序言 Java JDBC(Java Data Base Connectivity,Java 数据库连接)是一种用于执行 SQL 语句的 Java API,可以为多种关系数据库提供统一访问接口,它由一组用 Java 语言编写的类和接口组成。JDBC 为数据库应用开发人员、数据库前台工具开发人员提供了一个标准的 API,据此可以构建...

思捻如枫 269

Oracle 11g管理工具PLSQL Developer 12.0.7版本安装及汉化包安装(超详细保姆级)

1. ORACLE是数据库(Oracle服务端)。是连接数据库的客户端(Oracle客户端)。是连接oracle的可视化客户端软件。我们个人用于学习和练习的时候,选择安装1和2就够了。

2302_81846649的博客 3031

MATLAB与ROS联合仿真——实例程序搭建思路

MATLAB与ROS联合仿真——实例程序搭建思路

慕羽★的博客 5229

SQLJ的简单示例及一点学习心得

import java.sql.*;import sqlj.runtime.ref.DefaultContext;import oracle.sqlj.runtime.Oracle;public class SimpleExeSqlJ{   public static void main(String args[])          throws SQLException   {     

DragonBill的专栏 1765

Unity之ASE+ShaderGraph+VFX入门到精通 目录

这里是ASE+ShaderGraph+VFX从入门到精通专栏的目录,不停更新中,有问题随时留言或者私信。

TxNet 2841

[转载]使用 SQLJ 开发应用程序

使用 SQLJ 开发应用程序这篇 "how-to" 文章将解释如何在 Java™ 应用程序和 J2EE™ 应用程序中使用 SQLJ。文中将介绍 SQLJ 语法,使用 SQLJ 访问数据源,建立 WebSphere® Applic...

congji3817的博客 766

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

java使用oracle之静态SQL文本——SQLJ(未完成)

文章说明:黑色字体-已知,蓝色字体-所见即所得,红色字体-还需要再找资料弄明白的,黄色背景-提炼关键信息 参考资料:很多参考资料,段落下有原文链接到原作者 简介 在Oracle中,有两种使用Java的基本方法:JDBC、SQLJ。 JDBC :就像ODBC一样,它提供了一个基于驱动程序的接口,允许从Java应用程序中访问Oracle数据库。 SQLJ :这是多个厂商共同努力的结果,是一种新的语言,...

weixin_44470080的博客 516

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

用SQLJ开发数据库 第一部分:SQLJ概述

SQLJ的概述  今天的企业级应用程序通常运行在多数据库平台上,例如Oracle、DB2、Sybase、SQL Server、Informix等等。在这个环境里,代码的可移殖性和可维护性正变得越来越重要。从一个数据库平台到另一个数据库平台移植代码是非常复杂的并且要花费大量时间,因为数据库供应厂商都使用他们自己专有的过程语言(例如Oracle使用PL/SQL,而Sybase和SQL Server

herrcx的专栏 1347

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

构造SQLJ的界面化开发环境

由于SQLJ中是一段静态嵌入式java程序,因此可以利用JAVA的开发环境为基础,由于其开发复杂性要求不高,因此采取的是JCREATOR作为编译器,既可引用J2SDK的语言函数支持,又可以避免过于庞大的系统带来的不便,方法简洁快速。首先,使JCREATOR能识别后缀为SQLJ格式的文件,可在JCREATOR开发环境的对于JAVA源程序的代码识别后缀中加入SQLJ作为一个补充后缀名,这样就可以方

herrcx的专栏 623

oracle访问远程db2,DB2版SQLJ访问Oracle服务器

今天看到一本关于Oracle SQLJ的书于是想试一试。但我的Ubuntu 14.04只安装了Oracle的精简客户端。没有SQLJ,于是想到用IBM-db2的sqlj,居然成功了。一、从Oracle服务器端把runtime12ee.jar runtime12.jar translator.jar拷入相应目录我的是放在$ORACLE_HOME/sqlj/lib,其中的$ORACLE_HOME是...

weixin_39612877的博客 140

Oracle sqlj 开发入门

 1.开发工具使用Oracle JDeveloper2.建立sqlj文件:右键电击项目->新增,选择 Database Tier->Database File->SQLJ class3.编写sqlj的java方法,实例代码: package com.mycompany.db.sqlj;import com.mycompany.common.formula.service.Formula

黑土的Blog 2921

ORACLE(SQLJ-SHELL)

首先在ORACLE数据库建立JAVA对象, 这个版本的SQLJ-SHELL 只能支持正向连接,反向连接的时候有BUG 不建议使用,不知道是ORA支持JAVA的问题还是个人能力有限...要是有更好的方法可以方便交流QQ:282720807create or replace and compile java source named isto asimport java.io.*;import j

delphi,c#,java,php,mysql,入门,教程,电子书 886

用SQLJ开发

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 600
上一篇: 优化Entity Beans的七条守则
下一篇: 编程之道
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值