Class: SQLite3::Database
- Inherits:
-
Object
- Object
- SQLite3::Database
- Defined in:
- lib/jruby_sqlite3/jruby_sqlite3.rb
Defined Under Namespace
Modules: JavaSql
Class Method Summary collapse
Instance Method Summary collapse
- #close ⇒ Object
- #execute(sql, arr = nil) ⇒ Object
-
#initialize(path) ⇒ Database
constructor
A new instance of Database.
Constructor Details
#initialize(path) ⇒ Database
Returns a new instance of Database.
14 15 16 17 18 19 20 21 |
# File 'lib/jruby_sqlite3/jruby_sqlite3.rb', line 14 def initialize(path) Jdbc::SQLite3.load_driver Java::org.sqlite.JDBC conn_str = "jdbc:sqlite:#{File.join(path)}" @conn = JavaSql::DriverManager.getConnection(conn_str) @stm = @conn.createStatement end |
Class Method Details
.open(path) ⇒ Object
10 11 12 |
# File 'lib/jruby_sqlite3/jruby_sqlite3.rb', line 10 def self.open(path) self.new path end |
Instance Method Details
#close ⇒ Object
43 44 45 46 |
# File 'lib/jruby_sqlite3/jruby_sqlite3.rb', line 43 def close @stm.close @conn.close end |
#execute(sql, arr = nil) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/jruby_sqlite3/jruby_sqlite3.rb', line 23 def execute(sql, arr=nil) rs = if arr.nil? @stm.executeQuery(sql) else @stm.executeQuery(sql, arr) end columns = [] rsm = rs.getMetaData rsm.getColumnCount.times do |i| columns << rsm.getColumnName(i + 1) end data = [] while (rs.next) do data << columns.map{|column|rs.getString(column)} end data ensure rs.close end |