jdbc-wrapper 0.3 → 0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +1 -1
- data/Rakefile +1 -1
- data/examples/h2.rb +2 -1
- data/examples/h2_mem.rb +16 -0
- data/lib/jdbc/adapters/h2.rb +6 -2
- data/lib/jdbc/adapters/hsqldb.rb +6 -2
- data/lib/jdbc/db.rb +9 -3
- metadata +3 -2
data/README
CHANGED
@@ -17,7 +17,7 @@
|
|
17
17
|
require 'rubygems'
|
18
18
|
require 'jdbc'
|
19
19
|
|
20
|
-
JDBC::DB.start(:
|
20
|
+
JDBC::DB.start(:h2_mem,nil,nil,nil,nil,'foo') do |db|
|
21
21
|
db.query("CREATE TABLE records (name VARCHAR(80))")
|
22
22
|
|
23
23
|
db.query("INSERT INTO records (name) VALUES ('foo')")
|
data/Rakefile
CHANGED
@@ -17,7 +17,7 @@ require 'rake/gempackagetask'
|
|
17
17
|
|
18
18
|
gemspec = Gem::Specification.new do |s|
|
19
19
|
s.name = "jdbc-wrapper"
|
20
|
-
s.version = "0.
|
20
|
+
s.version = "0.4"
|
21
21
|
s.author = "Larry Myers"
|
22
22
|
s.email = "larry@larrymyers.com"
|
23
23
|
s.homepage = "http://jdbc-wrapper.rubyforge.org/"
|
data/examples/h2.rb
CHANGED
data/examples/h2_mem.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__),'..','lib')
|
2
|
+
|
3
|
+
require 'jdbc'
|
4
|
+
|
5
|
+
JDBC::DB.start(:h2_mem,nil,nil,nil,nil,'foo') do |db|
|
6
|
+
db.query("CREATE TABLE records " +
|
7
|
+
"(name VARCHAR(80), created_on TIMESTAMP)")
|
8
|
+
|
9
|
+
db.query("INSERT INTO records (name, created_on) " +
|
10
|
+
"VALUES ('foo', '#{Time.now.strftime("%Y-%m-%d %H:%M:%S")}')")
|
11
|
+
|
12
|
+
db.query("SELECT * FROM records").each_hash do |row|
|
13
|
+
row.each { |k,v| puts "#{k} = #{v}" }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
data/lib/jdbc/adapters/h2.rb
CHANGED
@@ -3,16 +3,20 @@ module JDBC
|
|
3
3
|
class H2
|
4
4
|
attr_reader :host, :port, :user, :password, :schema
|
5
5
|
|
6
|
-
def initialize(host, port, user, password, schema)
|
6
|
+
def initialize(host, port, user, password, schema, in_memory = false)
|
7
7
|
@host = host
|
8
8
|
@port = port
|
9
9
|
@user = user
|
10
10
|
@password = password
|
11
11
|
@schema = schema
|
12
|
+
@in_memory = in_memory
|
12
13
|
end
|
13
14
|
|
14
15
|
def connection_string
|
15
|
-
"jdbc:h2:
|
16
|
+
str = "jdbc:h2:"
|
17
|
+
str << "mem:" if @in_memory
|
18
|
+
str << "#{@schema}"
|
19
|
+
str
|
16
20
|
end
|
17
21
|
|
18
22
|
def class_name
|
data/lib/jdbc/adapters/hsqldb.rb
CHANGED
@@ -3,16 +3,20 @@ module JDBC
|
|
3
3
|
class Hsqldb
|
4
4
|
attr_reader :host, :port, :user, :password, :schema
|
5
5
|
|
6
|
-
def initialize(host, port, user, password, schema)
|
6
|
+
def initialize(host, port, user, password, schema, in_memory = false)
|
7
7
|
@host = host
|
8
8
|
@port = port
|
9
9
|
@user = user
|
10
10
|
@password = password
|
11
11
|
@schema = schema
|
12
|
+
@in_memory = in_memory
|
12
13
|
end
|
13
14
|
|
14
15
|
def connection_string
|
15
|
-
"jdbc:hsqldb
|
16
|
+
str = "jdbc:hsqldb"
|
17
|
+
str << ":mem" if @in_memory
|
18
|
+
str << ":#{@schema}"
|
19
|
+
str
|
16
20
|
end
|
17
21
|
|
18
22
|
def class_name
|
data/lib/jdbc/db.rb
CHANGED
@@ -14,8 +14,8 @@ module JDBC
|
|
14
14
|
class DB
|
15
15
|
# Creates a new database connection, you are responsible for
|
16
16
|
# making sure the connection gets closed. The database engine
|
17
|
-
# param should be a symbol. Supported: :h2, :hsqldb,
|
18
|
-
# :mysql, :postgresql
|
17
|
+
# param should be a symbol. Supported: :h2, :h2_mem, :hsqldb,
|
18
|
+
# :hsqldb_mem, :derby, :mysql, :postgresql
|
19
19
|
def initialize(engine, host, port, user, password, schema)
|
20
20
|
adapter = get_adapter(engine, host, port, user, password, schema)
|
21
21
|
|
@@ -24,6 +24,8 @@ module JDBC
|
|
24
24
|
|
25
25
|
@conn = JavaSql::DriverManager.getConnection(
|
26
26
|
adapter.connection_string)
|
27
|
+
rescue java.lang.ClassNotFoundException => e
|
28
|
+
raise RuntimeError.new(e.message)
|
27
29
|
rescue JavaSql::SQLException => e
|
28
30
|
raise RuntimeError.new(e.message)
|
29
31
|
end
|
@@ -98,15 +100,19 @@ module JDBC
|
|
98
100
|
return Adapters::Derby.new(host, port, user, password, schema)
|
99
101
|
when :h2
|
100
102
|
return Adapters::H2.new(host, port, user, password, schema)
|
103
|
+
when :h2_mem
|
104
|
+
return Adapters::H2.new(host, port, user, password, schema, true)
|
101
105
|
when :hsqldb
|
102
106
|
return Adapters::Hsqldb.new(host, port, user, password, schema)
|
107
|
+
when :hsqldb_mem
|
108
|
+
return Adapters::Hsqldb.new(host, port, user, password, schema, true)
|
103
109
|
when :mysql
|
104
110
|
return Adapters::Mysql.new(host, port, user, password, schema)
|
105
111
|
when :postgresql
|
106
112
|
return Adapters::Postgresql.new(host, port, user, password, schema)
|
107
113
|
end
|
108
114
|
|
109
|
-
raise
|
115
|
+
raise RuntimeError.new("#{engine} is not supported.")
|
110
116
|
end
|
111
117
|
end
|
112
118
|
end
|
metadata
CHANGED
@@ -3,12 +3,13 @@ extensions: []
|
|
3
3
|
homepage: http://jdbc-wrapper.rubyforge.org/
|
4
4
|
executables: []
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: !str 0.
|
6
|
+
version: !str 0.4
|
7
7
|
post_install_message:
|
8
|
-
date: 2008-
|
8
|
+
date: 2008-04-04 04:00:00 +00:00
|
9
9
|
files:
|
10
10
|
- examples/derby.rb
|
11
11
|
- examples/h2.rb
|
12
|
+
- examples/h2_mem.rb
|
12
13
|
- examples/mysql.rb
|
13
14
|
- lib/jdbc
|
14
15
|
- lib/jdbc.rb
|