jdbc-wrapper 0.3 → 0.4

Sign up to get free protection for your applications and to get access to all the features.
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