Как инициализировать драйвер JDBC для SQLite3 в JRuby? - PullRequest
5 голосов
/ 11 ноября 2009

Как получить доступ к SQLite3 через JDBC без использования активной записи?

Ответы [ 3 ]

5 голосов
/ 19 февраля 2012

Вот пример, который работает с JRuby 1.6.6 (в режиме сжатия Ruby 1.8) с jdbc-sqlite3 3.7.2.

require 'rubygems'
require 'jdbc/sqlite3'
require 'java'

org.sqlite.JDBC                 # load the driver so DriverManager detects it 
#Java::OrgSqlite::JDBC          # alternate means of same

connection = java.sql.DriverManager.getConnection 'jdbc:sqlite:test.sqlite3'
begin
  statement = connection.createStatement
  begin
    statement.executeUpdate("create table user (name varchar, pass varchar)")
    statement.executeUpdate("insert into user values ('alice', 1234)")
    statement.executeUpdate("insert into user values ('bob', 5678)")
    statement.executeUpdate("insert into user values ('charlie', 'asdf')")

    rs = statement.executeQuery("select * from user")
    begin
      puts "user\tpass"
      while rs.next
        puts ["#{rs.getString(1)}",
              "#{rs.getString(2)}"].join("\t")
      end
    ensure
      rs.close
    end

  ensure
    statement.close
  end
ensure
  connection.close
end

Выход:

$ rm -f test.sqlite3; ruby sql.rb
user    pass
------------
alice   1234
bob     5678
charlie asdf
1 голос
/ 11 ноября 2009

Установить гем jdbc-sqlite3

Затем в вашем скрипте jruby:

require 'jdbc/sqlite3'
url = "jdbc:sqlite:path.to.your.db"
begin        
    Java::org.sqlite.JDBC #initialize the driver
    connection = JavaLang::DriverManager.getConnection(url) #grab your connection
rescue => error      
    #handle error
end
0 голосов
/ 14 февраля 2012

Файл драйвера jdbc sqlite-3.5.8.jar копируется в каталог gem. Его нужно скопировать в каталог jruby / lib. Приложение также нуждается в перезагрузке.

Файл драйвера можно скачать прямо здесь

http://files.zentus.com/sqlitejdbc/sqlitejdbc-v056.jar

http://www.zentus.com/sqlitejdbc/
...