Jak uzyskać dostęp do SQLite3 przez JDBC bez użycia rekordu aktywnego?Jak zainicjować sterownik JDBC SQLite3 w JRuby?
Odpowiedz
Zainstalować JDBC sqlite3 gem
Następnie w skrypcie 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
JDBC pliku sterownika sqlite-3.5.8.jar
zostanie skopiowany do katalogu gem. Musi zostać skopiowany do katalogu jruby/lib. Aplikacja również wymaga restartu.
Plik sterownika można pobrać bezpośrednio stąd
http://files.zentus.com/sqlitejdbc/sqlitejdbc-v056.jar
http://www.zentus.com/sqlitejdbc/
Oto przykład, który współpracuje z JRuby 1.6.6 (w Ruby 1.8 trybu kompatybilnego) ze 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
wyjściowa:
$ rm -f test.sqlite3; ruby sql.rb
user pass
------------
alice 1234
bob 5678
charlie asdf
To jest wyjątkowo pomocna odpowiedź. Pomyślałem jednak, że powinienem wykonać '' 'Jdbc :: SQLite3.load_driver''' przed linią' '' org.sqlite.JDBC''', aby to działało - prawdopodobnie ze względu na zmiana w Jdbc od momentu opublikowania tej odpowiedzi. – abhillman
- 1. Nie można zainstalować SQLITE3 z JRuby
- 2. sterownik JDBC połączenia MS Access
- 3. sterownik jdbc dla google bigquery
- 4. Nie znaleziono odpowiedni sterownik JDBC w Spark
- 5. Redshift i Postgres Sterownik JDBC przechwytują ciąg połączenia Jdbc: // Postgresql
- 6. Jak dodać sterownik mysql JDBC do projektu Eclipse?
- 7. Dlaczego sterownik JDBC należy umieścić w folderze TOMCAT_HOME/lib?
- 8. ClassNotFoundException: com.mysql.jdbc.Driver. Sterownik JDBC MySQL dla aplikacji internetowych
- 9. Jak profilować kod JRuby?
- 10. Debugowanie w JRuby 9000
- 11. Java Array w Jruby
- 12. JRuby Wydajność
- 13. PostgreSQL - Instalowanie sterownika JDBC
- 14. Jak włączyć obsługę rozszerzenia C w jRuby?
- 15. Jak dodać sterownik JDBC mysql do Eclipse, aby mógł być używany przez program SQL Explorer?
- 16. Nie można utworzyć sterownika JDBC klasy '' dla adresu URL połączenia 'null': Tomcat i sterownik JDBC serwera SQL
- 17. sqlite3 w języku Python
- 18. Zamiennik mostu JDBC-ODBC
- 19. powolne wstawianie sqlite przy użyciu sterowników jdbc w java
- 20. Zmiana wartości w SQLite3
- 21. Sterownik w podkatalogu
- 22. Sterownik java mongodb Jak złapać wyjątki?
- 23. Szybszy RSpec z JRuby
- 24. JRuby i obiektów Javy
- 25. jak włączyć sqlite3 dla php?
- 26. Jak działa `db.serialize` w` node-sqlite3`
- 27. Sqlite3: jak zmienić kolejność kolumn w tabeli?
- 28. Jak utworzyć jedno do wielu w SQLITE3?
- 29. Jak poprawnie zainicjować rejestratory?
- 30. Jak findViewById zainicjować widok
pojawia się błąd, gdy próbuję to zrobić: pakiet 'skapitalizowane lub klasa nie znaleziono (' java.org.sqlite.JDBC ') "' Wszelkie sugestie. być bardzo wdzięcznym, nawet jeśli ktoś mógłby mi powiedzieć, jak się o tym przekonać: –
@duckyfuzz Jakie wersje JRuby itp używasz? Czy jdbc-sqlite3 pojawia się po uruchomieniu 'gem list'? Powyższe działa dla mnie bez błędy, o ile dodam 'require 'rubygems'' jako pierwszą linię.Używam jruby-1.6.4. –
@RobertHaines Używanie 1.6.4 Mam klasę z' import Java '. metody w klasie używa kodu z powyższej odpowiedzi. Kiedy próbuję go uruchomić, otrzymuję teraz błąd: 'Pakiet Java' java 'nie ma metody' + ''. Potrzebuję rubygemów, a klejnot jest prawidłowo zainstalowany. –