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

减小字体 增大字体

第一行用于更新 ID 为 12 的雇员,使其拥有一间新的办公室。第二行用于将职位为主管的人更改副总裁。正如您所见,update 方法要求使用对象的 ID,这将强制它只更新一行。

  用 ActiveRecord 删除行同样地直观。有一种 delete 方法可使用一个 ID 或一组 ID。delete_all 方法与 update_all 方法相对应,前者将删除匹配指定条件的所有行。

  使用 ActiveRecord 事务

  要完成早前做出的 ActiveRecord 与 JDBC 示例的比较,添加插入 David Duke 的事务。为此,需要把 newEmp.save 行更改为清单 13 中所示的一行。

  清单13:添加插入事务

Employee.transaction do
newEmp.save
end

  如果事务包括了其他失败的代码,则 David Duke 将不会被添加到数据库中。在本例中,这是不会发生的,因为每个独立对象的保存(对于插入和更新)都被 ActiveRecord 打包在事务中。要管理多次插入、更新或删除时有必要这样做。

  如果事务包括了其他失败的代码,则 David Duke 将不会被添加到数据库中。在本例中,这是不会发生的,因为每个独立对象的保存(对于插入和更新)都被 ActiveRecord 打包在事务中。要管理多次插入、更新或删除时有必要这样做。

  正如您所见,ActiveRecord 易于使用。ActiveRecord-JDBC gem 的发布为在 JRuby 内使用 Derby 提供了一种很好的方法。全面讨论 ActiveRecord 超出了本教程的范围,但查看 参考资料 部分可获得一些有用的参考。

  ActiveRecord 与 JDBC 相比较

  决定使用哪些持久性机制取决于您的需求。如果要与现有 Java 代码库进行交互,而该代码库又与 Derby 进行通信,则应最可能使用 JDBC。如上所述,可能有一个预存在的隔离层,用于处理与数据库进行的所有通信,并且已包含并使用了那些类或软件包。如果要编写使用 Derby 的新应用程序并且不要求使用 Java 代码,则可以在 Ruby 中编写全部代码并使用 ActiveRecord 用于持久性。

  您还可以编写一个新应用程序,但需要与不遵循任何 ActiveRecord 约定的传统数据库进行交互。在这种情况下,使用 Hibernate 可能比较合适。ActiveRecord 在这样的数据库上运行最佳:表中一行映射到一个对象实例。这不是说 ActiveRecord 无法处理表之间的关系。ActiveRecord 可以很好地处理一对一、一对多和多对多关系。但是,如果表中的几列映射到一个对象,其余列映射到另一个对象 —— 表示一张表有来自不同对象的字段 —— 则 ActiveRecord 不再适用。JRuby 的力量在于如果需要使用 Hibernate、iBatis 或直接使用 JDBC,则它们全都可用,因为您可以使用 Java 库。

  结束语

  本教程讨论了在 JRuby 内使用 Derby 作为持久性存储的各种方法。了解了如何通过 JRuby 的 include_class 和 include_package 方法在 Ruby 脚本内使用 JDBC。然后了解了在 JRuby 内使用 ActiveRecord 的新功能的知识,并获得了每种方法何时使用比较适当的一些提示。

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

用户名: 查看更多评论

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

内 容:

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

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