Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
ActiveRecord adapter for JDBC and JRuby. Alternate clone at git://
Ruby Java

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


activerecord-jdbc-adapter is a database adapter for Rails' ActiveRecord
component that can be used with JRuby[]. It allows use of
virtually any JDBC-compliant database with your JRuby on Rails application.

== Project Info

* Mailing Lists:
* Issues:
* Source: git:// 

== Databases

What's there, and what is not there:

* MySQL - Complete support
* PostgreSQL - Complete support
* Oracle - Complete support
* Microsoft SQL Server - Complete support
* DB2 (LUW) - Complete support
* DB2 (IBM i: AS400 Toolbox driver) - Complete, except for binary and rename_column
* DB2 (z/OS) - Unknown
* FireBird - Complete, except for change_column_default and rename_column
* Derby - Complete, except for:
  * change_column
  * change_column_default
  * remove_column
  * rename_column
* HSQLDB - Complete
* H2 - Complete
* SQLite3 - work in progress
* Informix - Fairly complete support, all tests pass and migrations appear to work.  Comments welcome.

Other databases will require testing and likely a custom configuration module.
Please join the activerecord-jdbc
mailing-lists[] to help us discover
support for more databases.

== Using ActiveRecord JDBC

=== Inside Rails

To use activerecord-jdbc-adapter with JRuby on Rails:

1. Choose the adapter you wish to gem install. The following pre-packaged
   adapters are available:

  * base jdbc (<tt>activerecord-jdbc-adapter</tt>). Supports all available databases via JDBC, but requires you to download and manually install the database vendor's JDBC driver .jar file.
  * mysql (<tt>activerecord-jdbcmysql-adapter</tt>)
  * postgresql (<tt>activerecord-jdbcpostgresql-adapter</tt>)
  * sqlite3 (<tt>activerecord-jdbcsqlite3-adapter</tt>)
  * derby (<tt>activerecord-jdbcderby-adapter</tt>)
  * hsqldb (<tt>activerecord-jdbchsqldb-adapter</tt>)
  * h2 (<tt>activerecord-jdbch2-adapter</tt>)
  * mssql (<tt>activerecord-jdbcmssql-adapter</tt>)

2a. For Rails 3, if you're generating a new application, use the
    following command to generate your application:

   jruby -S rails new sweetapp -m

2b. Otherwise, you'll need to perform some extra configuration steps
    to prepare your Rails application for JDBC.

   If you're using Rails 3, you'll need to modify your Gemfile
   to use the activerecord-jdbc-adapter gem under JRuby. Change your
   Gemfile to look like the following (using sqlite3 as an example):

    if defined?(JRUBY_VERSION)
      gem 'activerecord-jdbc-adapter'
      gem 'jdbc-sqlite3'
      gem 'sqlite3'

   If you're using Rails 2:

    jruby script/generate jdbc

3. Configure your database.yml in the normal Rails style. 

   Legacy configuration: If you use one of the convenience
   'activerecord-jdbcXXX-adapter' adapters, you can still put a 'jdbc'
   prefix in front of the database adapter name as below.

      adapter: jdbcmysql
      username: blog
      hostname: localhost
      database: weblog_development

   For other databases, you'll need to know the database driver class
   and URL. Example:

      adapter: jdbc
      username: blog
      driver: com.mysql.jdbc.Driver
      url: jdbc:mysql://localhost:3306/weblog_development

   For JNDI data sources, you may simply specify the JNDI location as follows
   (the adapter will be automatically detected):

      adapter: jdbc
      jndi: jdbc/mysqldb

=== Standalone, with ActiveRecord

1. Install the gem with JRuby:

    jruby -S gem install activerecord-jdbc-adapter

   If you wish to use the adapter for a specific database, you can install it
   directly and a driver gem will be installed as well:

    jruby -S gem install activerecord-jdbcderby-adapter

2. After this you can establish a JDBC connection like this:

      :adapter => 'jdbcderby',
      :database => "db/my-database"

   or like this (but requires that you manually put the driver jar on the classpath):

      :adapter => 'jdbc',
      :driver => 'org.apache.derby.jdbc.EmbeddedDriver',
      :url => 'jdbc:derby:test_ar;create=true'

== Getting the source

The source for activerecord-jdbc-adapter is available using git.

  git clone git://

== Feedback

Please file bug reports at If you're not sure if
something's a bug, feel free to pre-report it on the mailing lists.

== Running AR-JDBC's Tests

Drivers for 6 open-source databases are included. Provided you have MySQL
installed, you can simply type <tt>jruby -S rake</tt> to run the tests. A
database named <tt>weblog_development</tt> is needed beforehand with a
connection user of "blog" and an empty password.

If you also have PostgreSQL available, those tests will be run if the
`psql' executable can be found. Also ensure you have a database named
<tt>weblog_development</tt> and a user named "blog" and an empty

If you want rails logging enabled during these test runs you can edit 
test/jdbc_common.rb and add the following line:

require 'db/logger'

== Running AR Tests

To run the current AR-JDBC sources with ActiveRecord, just use the
included "rails:test" task. Be sure to specify a driver and a path to
the ActiveRecord sources.

  jruby -S rake rails:test DRIVER=mysql RAILS=/path/activerecord_source_dir

== Authors

This project was written by Nick Sieger <> and Ola Bini
<> with lots of help from the JRuby community.

== License

activerecord-jdbc-adapter is released under a BSD license. See the LICENSE file
included with the distribution for details.

Open-source driver gems for activerecord-jdbc-adapter are licensed under the
same license the database's drivers are licensed. See each driver gem's
LICENSE.txt file for details.
Something went wrong with that request. Please try again.