如何通过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