在(J)Ruby中解析XML并插入到数据库中

时间:2009-10-16 01:39:00

标签: mysql xml ruby jruby

我是(J)Ruby的新手 - 在RoR中编写了一些小的“演示应用程序” 但是还没有真正深入到语法中。

我现在有一个用Java编写的应用程序,它带有一个XML文件, 解析它,然后使用Hibernate将其插入MySQL数据库。 我真正想做的是看看我是否可以将其移植到JRuby, - 主要是作为一种学习练习 - 但我不确定在哪里 启动。

本文档似乎提供了解析XML的好主意:

http://developer.yahoo.com/ruby/ruby-xml.html

但是从那里开始,我不确定将它放入数据库的最佳方式 是。 ActiveRecord是一个选项,如果是这样,我如何将其挂钩 一个“独立”的JRuby应用程序?或者我想我可以以某种方式整合我的 现有的Hibernate东西,对吧?

我们将非常感激地收到任何有关示例代码的建议或链接......

此致 安德鲁。

1 个答案:

答案 0 :(得分:4)

继续进行ActiveRecord投入,这是h2嵌入式java数据库的一些入门。

我认为你需要这些宝石

jruby -S gem install active_record
jruby -S gem install active_record_jdbc_adapter
jruby -S gem install active_record_jdbch2_adapter
jruby -S gem install jdbc_h2

然后你可以使用像这样的活动记录

require 'active_record'
require 'logger'

my_logger = Logger.new(STDOUT)
my_logger.level = Logger::DEBUG
ActiveRecord::Base.logger = my_logger

ActiveRecord::Base.establish_connection(
  :adapter => 'jdbch2',
  :database => "my_database_file",        # set to anything you want first run
  :username => "my_username",             # set to anything you want first run
  :password => "my_secret_password"       # set to anything you want first run
)

您需要插入一些表格。在ActiveRecord约定中,维护一个有序数据库架构更改的文件夹,然后将迁移器指向该文件夹。例如,创建一个“migrations”文件夹,以及名为“20090815230000_create_my_models.rb”的以下文件。确保“snake_case”文件名与CamelCase类名匹配。

class CreateMyModels < ActiveRecord::Migration
  def self.up
    create_table :my_models do |t|
      t.string  :foo
    end
  end

  def self.down
    drop_table :my_models
  end
end

现在(返回主脚本),您可以将Rails迁移器指向此文件夹。 rails migrator存储所有必要的元数据以按顺序运行迁移,并在它们可用后运行新的。

ActiveRecord::Migration.verbose = true
ActiveRecord::Migrator.migrate("migrations")

创建表格后,您可以正常使用ActiveRecord

class MyModel < ActiveRecord::Base
end

现在您可以将内容插入数据库。

x=MyModel.new
x.foo="bar"
x.save!

我希望这会有所帮助。如果ActiveRecord太难以开始工作,Sequel很轻松有趣。