首 页新闻文章中心下载中心客户留言
您当前的位置:古朴下载网文章中心程序设计java程序设计Java数据库 → 文章内容 退出登录 用户管理
本类热门文章
相关下载
关于在JRuby中构建Apache Derby数据库应用程序的两种方法(七)
作者:本站  来源:本站原创  发布时间:2008-3-7 10:42:25

减小字体 增大字体

◆首先,无需声明 connection 变量的类型。Ruby 是动态类型的语言;因而在变量声明中无需声明类型。

  ◆其次,使用上面定义的用于容纳 DriverManager 类的 JavaSql 模块。该类以及 java.sql 软件包中的所有其他内容都被 JavaSql 模块包含了进来。因而,需要在所有对该软件包中的类的引用前面加上 JavaSql::。这是一种作用域机制,与 C++ 中的一样。

  只要一切设置正确,脚本应当能够运行。经过授权后,该脚本还没有任何值得注意的表现。运行它后,应当得不到任何输出。如果发生异常,请返回并查看先前的步骤以确保未遗漏任何操作。

  处理 JRuby 中的 JDBC 异常

  您的代码与 Java 代码之间还有另一个区别尚未提及:尚未执行任何操作来处理异常。Class.forName 和 DriverManager.getConnection 都抛出已检查异常。在 Java 代码中,等效代码将不会编译,直至对那些异常做出一些处理。Ruby 没有已检查异常,因此您不用处理它们。但是,编写应用程序时,通常希望执行一些处理异常的操作(如果可以)。执行代码可能产生两个已检查异常:ClassNotFoundException 和 SQLException。要了解如何处理这两个异常,请修改 .rb 文件以匹配清单 4 中所示的代码。

  清单4:处理异常

require 'java'
      
module JavaSql
include_package 'java.sql'
end
      
include_class("java.lang.Class") { |packagename, classname| "J" + classname}
include_class("java.lang.ClassNotFoundException")
begin
JClass.forName("org.apache.derby.jdbc.EmbeddedDriver")
connection = JavaSql::DriverManager.getConnection("jdbc:derby:JRubyDB;create=true",
     "",
     "")
rescue ClassNotFoundException
puts "ClassNotFoundException"
rescue JavaSql::SQLException
puts "SQLException"
end
"")

  第一个更改是为 ClassNotFoundException 添加了 include_class。由于将处理该异常,因此脚本需要知道异常类的存在。无需为 SQLException 单独使用一个 include,因为已通过 include_package 'java.sql' 包含该异常。Ruby 中的异常是按照类似于 Java 的方法来处理的。您有一个开头为 begin 而不是 try、结尾为 end 而不是 } 的块。使用 rescue,而不是使用 catch。那些更改就是与第一个版本的代码的其余差别。代码的流程应当看起来仍然熟悉。rescue 块中做的全部操作就是打印异常类型。很明显,在现实世界中您将对那些异常做一些更有用的操作,但是这将引领您入门。

[] [返回上一页] [打 印]
文章评论 (评论内容只代表网友观点,与本站立场无关!)

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 管理登陆
友情连接及广告业务QQ:104261325(请注明来意)本网站日IP超五千,欢迎各位做广告及进行连接