网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.JDB的简单使用.
.Java SE 6 新特性: JMX 与系统管.
.Vector在Java编程中的应用.
.仔细触摸Java编程中的“文档”和.
.在Java程序中截获控制台输出.
.绕过Java开发瓶颈 解析EJB编程限.
.回顾Java Beans.
.最新资讯 Java程序能原生支持Vis.
.写了一个hta来转换资源文件格式.
.将存储过程封装为EJB组件的方法.
.Java的执行效率完全可以比C/C++的.
.Java实现Http服务器之一.
.如何使用Java编写NT服务(二).
.JDK6.0的新特性:轻量级Http Serv.
.JavaDoc命令使用说明.
.在Java2环境中应用IP地址封装对象.
.用Java Swing作一个日历控制程序.
.基于Struts的权限实现.
.几个有参考价值的java问题.
.使用Socket通道读取web页面.

用SQLJ开发数据库(3)

发表日期:2008-1-5



  用SQLJ开发数据库(3)

   使用SQLJ的开发步骤

   下面是开发和运行一个SQLJ应用程序所需要做的事情:

   使用SQLJ编译器编译SQLJ源文件。这一步生成调用SQLJ运行时的Java文件,以及二进制的SQLJ描述文件--包括存在于SQLJ源文件中的静态SQL语句的有关信息。使用Java编译程序编译Java代码。在编辑完成之后,生成的描述文件是使用特定数据库数据类型,扩展和特征性能定制的。

   运行应用程序,使用SQLJ运行时程序库和特定数据库的JDBC驱动程序。举例来说,假如你的主.sqlj文件定义类MyClass,那么源文件名必须是MyClass.sqlj。编译器生成MyClass.java源文件,然后编译程序生成MyClass.class类文件。而且,翻译器和编译程序两者都生成profile - key类,MyClass_SJProfileKeys.class。翻译器根据你怎样声明它们来命名迭代程序类与连接上下文类。举例来说,假如你声明一个迭代程序,MyIter,将生成一个MyIter.class类文件。

   下面是配置SQLJ的必要条件∶

    SQLJ运行时程序库

    JDBC驱动程序,例如:JDBC/ODBC桥,Oracle JDBC/OCI驱动程序,Oracle瘦JDBC驱动程序,DB2 JDBC驱动程序等等。

    SQLJ程序将执行的JVM

   现在让我们比较SQLJ和JDBC,并比较SQLJ/JDBC和PL/SQL。

   SQLJ 与JDBC

   SQLJ开发的目的是完善动态JDBC SQL结构化查询语言模型和静态的SQL结构化查询语言模型。与ODBC和JDBC动态模型不同,静态模型提供强类型应用程序翻译时间检查。这些不仅要求进行SQL语法的编译时检验和SQL语句使用的主机变量的类型兼容,而且查询本身的正确性与数据库模型中的表,视图,存储过程等等的定义有关。因为所有的SQL语句都要被编译,SQLJ可以作为一个性能更好的中间媒质。

   SQLJ代码与JDBC代码

   对于有输入参数的SQL语句,SQLJ类通常比等价的动态的SQL语句( JDBC)调用简短,因为SQLJ运用主机变量把参数传递到SQL语句中,当JDBC要求一个单独的语句把个个参数捆绑起来,检索每个结果。下面是一条SELECT语句的SQLJ代码片断:

String vName; int vSalary; String vJob; Java.sql.Timestamp vDate;
...
#sql { SELECT Ename, Sal
INTO :vName, :vSalary
FROM Emp
WHERE Job = :vJob and HireDate = :vDate };

   下面是相同的SELECT语句的JDBC代码碎片:


String vName; int vSalary; String vJob; Java.sql.Timestamp vDate;
...
PreparedStatement stmt = connection.prepareStatement(
"SELECT Ename, Sal " +
"INTO :vName, :vSalary " +
"FROM Emp " +
"WHERE Job = :vJob and HireDate = :vDate");

stmt.setString(1, vJob);
stmt.setTimestamp(2, vDate);

ResultSet rs = stmt.executeQuery();
rs.next();

vName = rs.getString(1);
vSalary = rs.getInt(2);

rs.close();


   我们可以看到,直接在一个Java程序中嵌入SQL语句能够生成比JDBC更加简明易读的代码。因此,SQLJ在Java应用程序有数据库访问需要的时候,减少了开发时间和维修代价。SQLJ程序可以在同一个源文件中很轻易地与JDBC代码相互作用来做到动态的SQL语句调用,或者你也可以在SQLJ语句中使用PL/SQL语句块来完成这个目的。此外,Oracle 9i增加了在SQLJ代码直接支持动态SQL的功能。

(未完待续)
上一篇:应用服务器的发展 人气:497
下一篇:用SQLJ开发数据库(2) 人气:708
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐