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 CHANGED
@@ -17,7 +17,7 @@
17
17
  require 'rubygems'
18
18
  require 'jdbc'
19
19
 
20
- JDBC::DB.start(:h2,nil,nil,nil,nil,'foo') do |db|
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.3"
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/"
@@ -12,4 +12,5 @@ JDBC::DB.start(:h2,nil,nil,nil,nil,'foo') do |db|
12
12
  db.query("SELECT * FROM records").each_hash do |row|
13
13
  row.each { |k,v| puts "#{k} = #{v}" }
14
14
  end
15
- end
15
+ end
16
+
@@ -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
+
@@ -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:mem:#{@schema}"
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
@@ -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:mem:#{@schema}"
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
@@ -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, :derby
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 InvalidException("#{engine} is not supported.")
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.3
6
+ version: !str 0.4
7
7
  post_install_message:
8
- date: 2008-03-18 04:00:00 +00:00
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