Active Record vs JRuby vs JDBC

时间:2014-02-11 04:01:11

标签: ruby-on-rails ruby activerecord jdbc jruby

我是Ruby on rails的新手,我最近创建了一个连接到sqlite3数据库的小型会计应用程序。

目前,我仍处于开发阶段,我可以使用控制器端的activerecord命令保存新数据或更新数据库中的现有记录。

但我的问题是关于JDBC与JRuby:

我也是java的新手,根据我的理解,JRuby完全由Java代码构成,并且正在JVM上运行。并且如果用C语言写的那些宝石将无效。

如果我开始使用JRuby代替MRI,那会有什么区别?我是否仍在使用活动记录命令来操纵数据库中的记录?

如果我使用JRuby并创建一个新的应用程序,那么JDBC适配器是否与sqlite3之类的现有gem完全相同,可以将应用程序连接到数据库?

或者我只需要编写JDBC适配器而不是控制器?

我对它如何工作有点困惑,一些信息将不胜感激。提前谢谢你!

修改

我的意思是,目前我的应用程序正在使用Ruby on Rails,我在控制器中使用命令,例如当您更新现有记录时:

@variable = [Table_name].find(:id)

然后

@variable.update_attributes(params[:submit])

此命令将使用RoR更新记录,但如果在JRuby中使用Rails,这将如何工作?它的语法是一样的吗?

1 个答案:

答案 0 :(得分:1)

JDBC是连接数据库的Java API和驱动程序。

Rails使用ActiveRecord作为应用程序和数据库之间的ORM层。

然后,ActiveRecord将使用指定的驱动程序生成SQL语句和迁移。

从您提到的@variable = [Table_name].find(:id)

开始,应用程序端的调用将始终相同

差异将出现在日志中生成的SQL语句和生成的迁移中,以适应指定的数据库驱动程序。