如何通過JDBC訪問SQLite3而不使用活動記錄?如何初始化JRuby中的SQLite3 JDBC驅動程序?
5
A
回答
1
安裝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
JDBC驅動程序文件sqlite-3.5.8.jar
被複制到寶石目錄。它需要被複制到jruby/lib目錄中。應用程序也需要重啓。
驅動程序文件可以直接從這裏
http://files.zentus.com/sqlitejdbc/sqlitejdbc-v056.jar
http://www.zentus.com/sqlitejdbc/
5
下載下面是使用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
+0
這是一個非常有幫助的答案。然而,我想我會指出,我必須在行'''org.sqlite.JDBC'''之前執行''''Jdbc :: SQLite3.load_driver'''才能工作 - 可能是因爲因爲這個答案已發佈,所以在Jdbc中進行更改。 – abhillman 2015-06-21 05:20:59
相關問題
- 1. 指定的JDBC驅動程序:org.h2.jdbc - 初始化失敗
- 2. 如何在初始化Hibernate的SessionFactory之前讓Spring加載JDBC驅動程序?
- 3. Cuda驅動程序初始化失敗
- 4. 如何初始化Sqlite3中的模式?
- 5. 如何使用jruby-complete.jar註冊JDBC驅動程序?
- 6. JRuby + Sqlitejdbc:找不到適合jdbc的驅動程序:sqlite:
- 7. Sun JDBC ODBC驅動程序或MSSQL JDBC驅動程序
- 8. 開發JDBC驅動程序
- 9. 爲什麼JDBC驅動程序在類的靜態初始化程序中註冊自己?
- 10. JRuby和SQLite3的
- 11. 如何安裝SQLite JDBC驅動程序?
- 12. Tomcat和JDBC驅動程序
- 13. 關於JDBC驅動程序
- 14. jdbc odbc驅動程序
- 15. 更改內核驅動程序中內置的驅動程序的初始化順序?
- 16. 在測試驅動程序初始化ArrayList的
- 17. 靜態,初始化,驅動程序和返回null的困難
- 18. MySQL jdbc驅動程序
- 19. 在啓動過程中執行驅動程序初始化後的操作
- 20. 加載JDBC驅動程序
- 21. JDBC驅動程序問題
- 22. 5型JDBC驅動程序
- 23. Windows/JRuby上的無頭驅動程序?
- 24. Hibernate中使用的JDBC驅動程序
- 25. OSGI中的JDBC驅動程序問題
- 26. OSGI中的JDBC驅動程序(Eclipse IDE)
- 27. jdbc中的postgres驅動程序錯誤
- 28. 如何知道哪個初始化程序是指定的初始化程序?
- 29. 處理兩個JDBC驅動程序的通用JDBC驅動程序
- 30. 的JRuby 1.5.1,警告:已初始化不斷貶低
我得到一個錯誤,當我嘗試這樣做:'資本包或類未找到('java.org.sqlite.JDBC')「'任何建議將。請注意,即使有人可以告訴我如何爲自己找出答案 – 2012-02-13 18:51:32
@duckyfuzz您使用的是什麼版本的JRuby等?當您運行'gem list'時,jdbc-sqlite3會出現嗎?只要我在第一行添加'require'rubygems''就行了我正在使用jruby-1.6.4 – 2012-02-15 12:12:40
@RobertHaines使用1.6.4我有一個帶有'import Java'的類,其中一個班上的方法使用上面答案中的代碼。當我嘗試運行它時,我現在得到錯誤:'Java package'java'沒有方法'+''。我需要rubygems,並且正確安裝了寶石。 – 2012-02-16 09:01:42