Первый подход: Голый металлКак подключиться к Oracle с использованием JRuby & JDBC
require 'java'
require 'rubygems'
require "c:/ruby/jruby-1.2.0/lib/ojdbc14.jar" # should be redundant, but tried it anyway
odriver = Java::JavaClass.for_name("oracle.jdbc.driver.OracleDriver")
puts odriver.java_class
url = "jdbc:oracle:thin:@myhost:1521:mydb"
puts "About to connect..."
con = java.sql.DriverManager.getConnection(url, "myuser", "mypassword");
if con
puts " connection good"
else
puts " connection failed"
end
Результат вышеперечисленное:
sqltest.rb:4: cannot load Java class oracle.jdbc.driver.OracleDriver (NameError)
Второй подход: Active Record
require 'rubygems'
gem 'ActiveRecord-JDBC'
require 'jdbc_adapter'
require 'active_record'
require 'active_record/version'
require "c:/ruby/jruby-1.2.0/lib/ojdbc14.jar" # should be redundant...
ActiveRecord::Base.establish_connection(
:adapter => 'jdbc',
:driver => 'oracle.jdbc.driver.OracleDriver',
:url => 'jdbc:oracle:thin:@myhost:1521:mydb',
:username=>'myuser',
:password=>'mypassword'
)
ActiveRecord::Base.connection.execute("SELECT * FROM mytable")
Результатом этого является:
C:/ruby/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-jdbc-adapter-0.9.1/lib/active_recordconnection_adapters/jdbc_adapter.rb:330:in `initialize':
The driver encountered an error: cannot load Java class oracle.jdbc.driver.OracleDriver (RuntimeError)
По существу такая же ошибка, независимо от того, как я это делаю.
Я использую JRuby 1.2.0 и у меня есть ojdbc14.jar в моем каталоге Lib JRuby
Gems:
- ActiveRecord-JDBC (0,5)
- ActiveRecord-JDBC-адаптер (0.9.1)
- ActiveRecord (2.2.2)
Что мне не хватает?
Спасибо,
Я бы интересно посмотреть, если SO может бить рубиновый форум (http://www.ruby-forum.com/topic/ 184414) –
Первоначально опубликовано в Nabble http://www.nabble.com/Having-problems-accessing-Oracle-td23070394.html Я предполагаю, что они дошли до Ruby Forum каким-то образом ... – Rob