Archive for the ‘JRuby’ Category

  1. Hello, JDBC Type1(JRuby) World!

    Posted on 10月 7th, 2012 by cx20

    JDBC Type1

    JDBC(Java Database Connectivity)は、Java 用のデータベース接続 API である。実装方法によりType1~4の4つのタイプが存在する。
    Type1 は JDBC と ODBC の API をマップさせたブリッジドライバである。
    以下は JRuby による JDBC ライブラリの使用例となっている。

    ソースコード(JRuby + JDBC Type1 + ODBC + Jet データベース)

    require 'rubygems'
    require 'java'
     
    Java::sun.jdbc.odbc.JdbcOdbcDriver
    conn = java.sql.DriverManager.get_connection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=hello.mdb", "", "")
    stmt = conn.create_statement
     
    rs = stmt.execute_query("SELECT 'Hello, JDBC Type1 World!' AS Message")
     
    while (rs.next) do
      puts rs.getString(1)
    end
     
    rs.close
    stmt.close
    conn.close

    ソースコード(JRuby + JDBC Type1 + ODBC + ACE データベース)

    require 'rubygems'
    require 'java'
     
    Java::sun.jdbc.odbc.JdbcOdbcDriver
    conn = java.sql.DriverManager.get_connection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=.\hello.accdb", "", "")
    stmt = conn.create_statement
     
    rs = stmt.execute_query("SELECT 'Hello, JDBC Type1 World!' AS Message")
     
    while (rs.next) do
      puts rs.getString(1)
    end
     
    rs.close
    stmt.close
    conn.close

    ソースコード(JRuby + JDBC Type1 + ODBC + SQL Server)

    require 'rubygems'
    require 'java'
     
    Java::sun.jdbc.odbc.JdbcOdbcDriver
    conn = java.sql.DriverManager.get_connection("jdbc:odbc:Driver={SQL Server};SERVER=(local)", "sa", "P@ssW0rd")
    stmt = conn.create_statement
     
    rs = stmt.execute_query("SELECT 'Hello, JDBC Type1 World!' AS Message")
     
    while (rs.next) do
      puts rs.getString(1)
    end
     
    rs.close
    stmt.close
    conn.close

    ソースコード(JRuby + JDBC Type1 + ODBC + Oracle)

    require 'rubygems'
    require 'java'
     
    Java::sun.jdbc.odbc.JdbcOdbcDriver
    conn = java.sql.DriverManager.get_connection("jdbc:odbc:Driver={Oracle in OraDb11g_home1};DBQ=ORCL", "scott", "tiger")
    stmt = conn.create_statement
     
    rs = stmt.execute_query("SELECT 'Hello, JDBC Type1 World!' AS Message FROM DUAL")
     
    while (rs.next) do
      puts rs.getString(1)
    end
     
    rs.close
    stmt.close
    conn.close

    ソースコード(JRuby + JDBC Type1 + ODBC + MySQL)

    require 'rubygems'
    require 'java'
     
    Java::sun.jdbc.odbc.JdbcOdbcDriver
    conn = java.sql.DriverManager.get_connection("jdbc:odbc:Driver={MySQL ODBC 5.1 Driver};Server=localhost", "root", "P@ssW0rd")
    stmt = conn.create_statement
     
    rs = stmt.execute_query("SELECT 'Hello, JDBC Type1 World!' AS Message")
     
    while (rs.next) do
      puts rs.getString(1)
    end
     
    rs.close
    stmt.close
    conn.close

    実行方法

    C:¥> jruby Hello.rb

    実行結果

    Hello, JDBC Type1 World!
  2. Hello, JRuby World!

    Posted on 1月 8th, 2012 by cx20

    JRuby

    JRuby はオブジェクト指向スクリプト言語 Ruby の Java 実装である。
    Ruby の構文が使える他、Java のライブラリが利用できる。
    また、JRuby のスクリプトは Java クラスとしてコンパイルすることもできえる。

    ソースコード

    #!/usr/bin/env jruby
    puts "Hello, JRuby World!"

    ソースコード(Java ライブラリを使用した場合)

    #!/usr/bin/env jruby
    require 'java'
    import 'java.lang.System'
    System.out.println('Hello, JRuby World!')

    実行方法(スクリプトファイルを指定して実行)

    $ jruby hello.rb

    実行方法(実行権限を付与して実行)

    $ chmod +x hello.rb
    $ ./hello.rb

    コンパイル&実行方法(バイトコードにコンパイルして実行)

    $ jrubyc hello.rb
    $ jruby hello.class

    コンパイル&実行方法(Java クラスとして実行)

    $ jrubyc hello.rb
    $ java -cp $JRUBY_HOME/lib/jruby.jar:. hello

    実行結果

    Hello, JRuby World!