module Sequel::JDBC

  1. lib/sequel/adapters/jdbc.rb
  2. lib/sequel/adapters/jdbc/as400.rb
  3. lib/sequel/adapters/jdbc/cubrid.rb
  4. lib/sequel/adapters/jdbc/db2.rb
  5. lib/sequel/adapters/jdbc/derby.rb
  6. lib/sequel/adapters/jdbc/firebird.rb
  7. lib/sequel/adapters/jdbc/h2.rb
  8. lib/sequel/adapters/jdbc/hsqldb.rb
  9. lib/sequel/adapters/jdbc/informix.rb
  10. lib/sequel/adapters/jdbc/jtds.rb
  11. lib/sequel/adapters/jdbc/mssql.rb
  12. lib/sequel/adapters/jdbc/mysql.rb
  13. lib/sequel/adapters/jdbc/oracle.rb
  14. lib/sequel/adapters/jdbc/postgresql.rb
  15. lib/sequel/adapters/jdbc/progress.rb
  16. lib/sequel/adapters/jdbc/sqlanywhere.rb
  17. lib/sequel/adapters/jdbc/sqlite.rb
  18. lib/sequel/adapters/jdbc/sqlserver.rb
  19. lib/sequel/adapters/jdbc/transactions.rb
  20. show all
Parent: Sequel

Houses Sequel’s JDBC support when running on JRuby.

Methods

Public Class

  1. load_gem

Constants

DATABASE_SETUP = {:postgresql=>proc do |db| JDBC.load_gem(:Postgres) org.postgresql.Driver Sequel.require 'adapters/jdbc/postgresql' db.extend(Sequel::JDBC::Postgres::DatabaseMethods) db.dataset_class = Sequel::JDBC::Postgres::Dataset org.postgresql.Driver end, :mysql=>proc do |db| JDBC.load_gem(:MySQL) com.mysql.jdbc.Driver Sequel.require 'adapters/jdbc/mysql' db.extend(Sequel::JDBC::MySQL::DatabaseMethods) db.extend_datasets Sequel::MySQL::DatasetMethods com.mysql.jdbc.Driver end, :sqlite=>proc do |db| JDBC.load_gem(:SQLite3) org.sqlite.JDBC Sequel.require 'adapters/jdbc/sqlite' db.extend(Sequel::JDBC::SQLite::DatabaseMethods) db.extend_datasets Sequel::SQLite::DatasetMethods db.set_integer_booleans org.sqlite.JDBC end, :oracle=>proc do |db| Java::oracle.jdbc.driver.OracleDriver Sequel.require 'adapters/jdbc/oracle' db.extend(Sequel::JDBC::Oracle::DatabaseMethods) db.dataset_class = Sequel::JDBC::Oracle::Dataset Java::oracle.jdbc.driver.OracleDriver end, :sqlserver=>proc do |db| com.microsoft.sqlserver.jdbc.SQLServerDriver Sequel.require 'adapters/jdbc/sqlserver' db.extend(Sequel::JDBC::SQLServer::DatabaseMethods) db.extend_datasets Sequel::MSSQL::DatasetMethods db.send(:set_mssql_unicode_strings) com.microsoft.sqlserver.jdbc.SQLServerDriver end, :jtds=>proc do |db| JDBC.load_gem(:JTDS) Java::net.sourceforge.jtds.jdbc.Driver Sequel.require 'adapters/jdbc/jtds' db.extend(Sequel::JDBC::JTDS::DatabaseMethods) db.dataset_class = Sequel::JDBC::JTDS::Dataset db.send(:set_mssql_unicode_strings) Java::net.sourceforge.jtds.jdbc.Driver end, :h2=>proc do |db| JDBC.load_gem(:H2) org.h2.Driver Sequel.require 'adapters/jdbc/h2' db.extend(Sequel::JDBC::H2::DatabaseMethods) db.dataset_class = Sequel::JDBC::H2::Dataset org.h2.Driver end, :hsqldb=>proc do |db| JDBC.load_gem(:HSQLDB) org.hsqldb.jdbcDriver Sequel.require 'adapters/jdbc/hsqldb' db.extend(Sequel::JDBC::HSQLDB::DatabaseMethods) db.dataset_class = Sequel::JDBC::HSQLDB::Dataset org.hsqldb.jdbcDriver end, :derby=>proc do |db| JDBC.load_gem(:Derby) org.apache.derby.jdbc.EmbeddedDriver Sequel.require 'adapters/jdbc/derby' db.extend(Sequel::JDBC::Derby::DatabaseMethods) db.dataset_class = Sequel::JDBC::Derby::Dataset org.apache.derby.jdbc.EmbeddedDriver end, :as400=>proc do |db| com.ibm.as400.access.AS400JDBCDriver Sequel.require 'adapters/jdbc/as400' db.extend(Sequel::JDBC::AS400::DatabaseMethods) db.dataset_class = Sequel::JDBC::AS400::Dataset com.ibm.as400.access.AS400JDBCDriver end, :"informix-sqli"=>proc do |db| com.informix.jdbc.IfxDriver Sequel.require 'adapters/jdbc/informix' db.extend(Sequel::JDBC::Informix::DatabaseMethods) db.extend_datasets Sequel::Informix::DatasetMethods com.informix.jdbc.IfxDriver end, :db2=>proc do |db| com.ibm.db2.jcc.DB2Driver Sequel.require 'adapters/jdbc/db2' db.extend(Sequel::JDBC::DB2::DatabaseMethods) db.dataset_class = Sequel::JDBC::DB2::Dataset com.ibm.db2.jcc.DB2Driver end, :firebirdsql=>proc do |db| org.firebirdsql.jdbc.FBDriver Sequel.require 'adapters/jdbc/firebird' db.extend(Sequel::JDBC::Firebird::DatabaseMethods) db.extend_datasets Sequel::Firebird::DatasetMethods org.firebirdsql.jdbc.FBDriver end, :jdbcprogress=>proc do |db| com.progress.sql.jdbc.JdbcProgressDriver Sequel.require 'adapters/jdbc/progress' db.extend(Sequel::JDBC::Progress::DatabaseMethods) db.extend_datasets Sequel::Progress::DatasetMethods com.progress.sql.jdbc.JdbcProgressDriver end, :cubrid=>proc do |db| Java::cubrid.jdbc.driver.CUBRIDDriver Sequel.require 'adapters/jdbc/cubrid' db.extend(Sequel::JDBC::Cubrid::DatabaseMethods) db.extend_datasets Sequel::Cubrid::DatasetMethods Java::cubrid.jdbc.driver.CUBRIDDriver end, :sqlanywhere=>proc do |db| drv = [ lambda{Java::sybase.jdbc4.sqlanywhere.IDriver}, lambda{Java::ianywhere.ml.jdbcodbc.jdbc4.IDriver}, lambda{Java::sybase.jdbc.sqlanywhere.IDriver}, lambda{Java::ianywhere.ml.jdbcodbc.jdbc.IDriver}, lambda{Java::com.sybase.jdbc4.jdbc.Sybdriver}, lambda{Java::com.sybase.jdbc3.jdbc.Sybdriver} ].each do |class_proc| begin break class_proc.call rescue NameError end end Sequel.require 'adapters/jdbc/sqlanywhere' db.extend(Sequel::JDBC::SqlAnywhere::DatabaseMethods) db.dataset_class = Sequel::JDBC::SqlAnywhere::Dataset drv end }  

Contains procs keyed on sub adapter type that extend the given database object so it supports the correct database type.

DECIMAL_TYPE_RE = /number|numeric|decimal/io  

The types to check for 0 scale to transform :decimal types to :integer.

JNDI_URI_REGEXP = /\Ajdbc:jndi:(.+)/  

Used to identify a jndi connection and to extract the jndi resource name.

Public Class methods

load_gem (name)

Allowing loading the necessary JDBC support via a gem, which works for PostgreSQL, MySQL, and SQLite.

[show source]
# File lib/sequel/adapters/jdbc.rb, line 170
def self.load_gem(name)
  begin
    require "jdbc/#{name.to_s.downcase}"
  rescue LoadError
    # jdbc gem not used, hopefully the user has the .jar in their CLASSPATH
  else
    if defined?(::Jdbc) && ( ::Jdbc.const_defined?(name) rescue nil )
      jdbc_module = ::Jdbc.const_get(name) # e.g. Jdbc::SQLite3
      jdbc_module.load_driver if jdbc_module.respond_to?(:load_driver)
    end
  end
end