我对(J)Ruby还是很陌生-在RoR中编写了一些小小的“演示应用程序”但实际上并没有真正了解语法.我目前有一个用Java编写的应用程序,该应用程序需要一个XML文件,进行解析,然后使用Hibernate将其插入MySQL数据库.我真正...
我对(J)Ruby还是很陌生-在RoR中编写了一些小小的“演示应用程序”
但实际上并没有真正了解语法.
我目前有一个用Java编写的应用程序,该应用程序需要一个XML文件,
进行解析,然后使用Hibernate将其插入MySQL数据库.
我真正想做的是看看是否可以将此移植到JRuby,-
主要是作为学习练习-但我不确定在哪里
开始.
该文档似乎对解析XML提供了一个好主意:
http://developer.yahoo.com/ruby/ruby-xml.html
但是从那里,我不确定将其放入数据库的最佳方法
是.是否可以选择ActiveRecord,如果可以的话,如何将其挂接到
一个“独立的” JRuby应用程序?或者我想我可以以某种方式整合我的
现有的Hibernate东西吧?
任何建议或示例代码的链接将不胜感激…
问候,
安德鲁.
解决方法:
继续学习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迁移器存储所有必要的元数据,以便按顺序运行迁移,并在新迁移可用时运行它们.
ActiveRecord::Migration.verbose = true
ActiveRecord::Migrator.migrate("migrations")
创建表后,您可以正常使用ActiveRecord
class MyModel < ActiveRecord::Base
end
现在您可以将内容插入数据库.
x=MyModel.new
x.foo="bar"
x.save!
我希望这有帮助.如果ActiveRecord上班不方便,那么Sequel既轻松又有趣.
本文标题为:mysql-在(J)Ruby中解析XML并插入数据库
基础教程推荐
- ruby-on-rails-使用Nginx的Rails的多阶段环境 2023-09-21
- R语言数可视化Split violin plot小提琴图绘制方法 2022-12-10
- asm基础——汇编指令之in/out指令 2023-07-06
- R语言-如何将科学计数法表示的数字转化为文本 2022-11-23
- R包ggtreeExtra绘制进化树 2022-12-14
- swift 字符串String的使用方法 2023-07-05
- swift版webview加载网页进度条效果 2023-07-05
- Go web部署报错panic: listen tcp xxxxxxx:8090: bind: cannot assign requested address 2023-09-05
- R语言基于Keras的MLP神经网络及环境搭建 2022-12-10
- UEFI开发基础HII代码示例 2023-07-07