tiếp cận đầu tiên: kim loại trầnLàm thế nào để kết nối với Oracle sử dụng 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
Kết quả trên là:
sqltest.rb:4: cannot load Java class oracle.jdbc.driver.OracleDriver (NameError)
cách tiếp cận thứ hai: 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")
Kết quả của việc này là:
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)
Về cơ bản cùng một lỗi không có vấn đề làm thế nào tôi đi về nó.
Tôi đang sử dụng JRuby 1.2.0 và tôi có ojdbc14.jar trong thư mục lib JRuby tôi
Gems:
- ActiveRecord-JDBC (0,5)
- activerecord-jdbc-adapter (0.9.1)
- activerecord (2.2.2)
Tôi đang thiếu gì?
Xin cảm ơn,
Sẽ quan tâm để xem nếu SO có thể đánh bại các diễn đàn ruby (http://www.ruby-forum.com/topic/ 184414) –
Được gửi tới Nabble http://www.nabble.com/Having-problems-accessing-Oracle-td23070394.html Tôi đoán họ được chuyển đến Ruby Forum bằng cách nào đó ... – Rob