1. Hello, JDBC Type4(Scala) World!

    Posted on 10月 6th, 2012 by cx20

    JDBC Type4

    JDBC(Java Database Connectivity)は、Java 用のデータベース接続 API である。実装方法によりType1~4の4つのタイプが存在する。
    Type4 は DBMS のクライアントライブラリを使用しない Pure Java の DBMS ドライバである。
    以下は Scala による JDBC ライブラリの使用例となっている。

    ソースコード(Scala + JDBC Type4 + SQL Server)

    import java.sql.DriverManager
     
    object Hello {
        def main(args : Array[String]) {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
            var con = DriverManager.getConnection("jdbc:sqlserver://;serverName=localhost", "sa", "P@ssW0rd");
            var stmt = con.createStatement()
            var rs = stmt.executeQuery("SELECT 'Hello, JDBC Type4 World' AS Message")
            while (rs.next()){
                println(rs.getString(1))
            }
            rs.close()
            stmt.close()
            con.close()
        }
    }

    実行方法(Scala + JDBC Type4 + SQL Server)

    C:¥> scala -cp "sqljdbc4.jar;." Hello.scala

    ソースコード(Scala + JDBC Type4 + Oracle)

    import java.sql.DriverManager
     
    object Hello {
        def main(args : Array[String]) {
            Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
            var con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger");
            var stmt = con.createStatement()
            var rs = stmt.executeQuery("SELECT 'Hello, JDBC Type4 World' AS Message FROM DUAL")
            while (rs.next()){
                println(rs.getString(1))
            }
            rs.close()
            stmt.close()
            con.close()
        }
    }

    実行方法(Scala + JDBC Type4 + Oracle)

    C:¥> scala -cp "ojdbc6.jar;." Hello.scala

    ソースコード(Scala + JDBC Type4 + MySQL)

    import java.sql.DriverManager
     
    object Hello {
        def main(args : Array[String]) {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            var con = DriverManager.getConnection("jdbc:mysql://localhost:3306", "root", "P@ssW0rd");
            var stmt = con.createStatement()
            var rs = stmt.executeQuery("SELECT 'Hello, JDBC Type4 World' AS Message")
            while (rs.next()){
                println(rs.getString(1))
            }
            rs.close()
            stmt.close()
            con.close()
        }
    }

    実行方法(Scala + JDBC Type4 + MySQL)

    C:¥> scala -cp "mysql-connector-java-5.1.22-bin.jar;." Hello.scala

    実行結果

    Hello, JDBC Type4 World!
  2. Hello, JDBC Type2(Scala) World!

    Posted on 10月 5th, 2012 by cx20

    JDBC Type2

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

    ソースコード(Scala + JDBC Type2 + Oracle)

    import java.sql.DriverManager
     
    object Hello {
        def main(args : Array[String]) {
            Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
            var con = DriverManager.getConnection("jdbc:oracle:oci:@orcl", "scott", "tiger");
            var stmt = con.createStatement()
            var rs = stmt.executeQuery("SELECT 'Hello, JDBC Type2 World' AS Message FROM DUAL")
            while (rs.next()){
                println(rs.getString(1))
            }
            rs.close()
            stmt.close()
            con.close()
        }
    }

    実行方法

    C:¥> scala Hello.scala
    C:¥> scala -cp "ojdbc6.jar;." Hello.scala

    実行結果

    Hello, JDBC Type2 World!
  3. Hello, JDBC Type1(Scala) World!

    Posted on 10月 4th, 2012 by cx20

    JDBC Type1

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

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

    import java.sql.DriverManager
     
    object Hello {
        def main(args : Array[String]) {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
            var con = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=.\hello.mdb", "", "");
            var stmt = con.createStatement()
            var rs = stmt.executeQuery("SELECT 'Hello, JDBC Type1 World' AS Message")
            while (rs.next()){
                println(rs.getString(1))
            }
            rs.close()
            stmt.close()
            con.close()
        }
    }

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

    import java.sql.DriverManager
     
    object Hello {
        def main(args : Array[String]) {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
            var con = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=.\hello.accdb", "", "");
            var stmt = con.createStatement()
            var rs = stmt.executeQuery("SELECT 'Hello, JDBC Type1 World' AS Message")
            while (rs.next()){
                println(rs.getString(1))
            }
            rs.close()
            stmt.close()
            con.close()
        }
    }

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

    import java.sql.DriverManager
     
    object Hello {
        def main(args : Array[String]) {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
            var con = DriverManager.getConnection("jdbc:odbc:Driver={SQL Server};SERVER=(local)", "sa", "P@ssW0rd");
            var stmt = con.createStatement()
            var rs = stmt.executeQuery("SELECT 'Hello, JDBC Type1 World' AS Message")
            while (rs.next()){
                println(rs.getString(1))
            }
            rs.close()
            stmt.close()
            con.close()
        }
    }

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

    import java.sql.DriverManager
     
    object Hello {
        def main(args : Array[String]) {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
            var con = DriverManager.getConnection("jdbc:odbc:Driver={Oracle in OraDb11g_home1};DBQ=ORCL", "scott", "tiger");
            var stmt = con.createStatement()
            var rs = stmt.executeQuery("SELECT 'Hello, JDBC Type1 World' AS Message FROM DUAL")
            while (rs.next()){
                println(rs.getString(1))
            }
            rs.close()
            stmt.close()
            con.close()
        }
    }

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

    import java.sql.DriverManager
     
    object Hello {
        def main(args : Array[String]) {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
            var con = DriverManager.getConnection("jdbc:odbc:Driver={MySQL ODBC 5.1 Driver};Server=localhost", "root", "P@ssW0rd");
            var stmt = con.createStatement()
            var rs = stmt.executeQuery("SELECT 'Hello, JDBC Type1 World' AS Message")
            while (rs.next()){
                println(rs.getString(1))
            }
            rs.close()
            stmt.close()
            con.close()
        }
    }

    実行方法

    C:¥> scala Hello.scala

    実行結果

    Hello, JDBC Type1 World!
  4. Hello, JDBC Type4(Groovy) World!

    Posted on 10月 3rd, 2012 by cx20

    JDBC Type4

    JDBC(Java Database Connectivity)は、Java 用のデータベース接続 API である。実装方法によりType1~4の4つのタイプが存在する。
    Type4 は DBMS のクライアントライブラリを使用しない Pure Java の DBMS ドライバである。
    以下は Groovy による JDBC ライブラリの使用例となっている。

    ソースコード(Groovy + JDBC Type4 + SQL Server)

    import groovy.sql.Sql
    class Hello {
        static void main(args) {
            Sql sql = Sql.newInstance("jdbc:sqlserver://;serverName=localhost", 
               "sa", "P@ssW0rd", "com.microsoft.sqlserver.jdbc.SQLServerDriver")
            sql.eachRow("SELECT 'Hello, JDBC Type4 World!' AS Message"){
                println it.Message
            }
        }
    }

    実行方法(Groovy + JDBC Type4 + SQL Server)

    C:¥> groovy -cp "sqljdbc4.jar;." Hello.groovy

    ソースコード(Groovy + JDBC Type4 + Oracle)

    import groovy.sql.Sql
    class Hello {
        static void main(args) {
            Sql sql = Sql.newInstance("jdbc:oracle:thin:@localhost:1521:orcl", 
               "scott", "tiger", "oracle.jdbc.driver.OracleDriver")
            sql.eachRow("SELECT 'Hello, JDBC Type4 World!' AS Message FROM DUAL"){
                println it.Message
            }
        }
    }

    実行方法(Groovy + JDBC Type4 + Oracle)

    C:¥> groovy -cp "ojdbc6.jar;." Hello.groovy

    ソースコード(Groovy + JDBC Type4 + MySQL)

    import groovy.sql.Sql
    class Hello {
        static void main(args) {
            Sql sql = Sql.newInstance("jdbc:mysql://localhost:3306", 
               "root", "P@ssW0rd", "com.mysql.jdbc.Driver")
            sql.eachRow("SELECT 'Hello, JDBC Type4 World!' AS Message"){
                println it.Message
            }
        }
    }

    実行方法(Groovy + JDBC Type4 + MySQL)

    C:¥> groovy -cp "mysql-connector-java-5.1.22-bin.jar;." Hello.groovy

    実行結果

    Hello, JDBC Type4 World!
  5. Hello, JDBC Type2(Groovy) World!

    Posted on 10月 2nd, 2012 by cx20

    JDBC Type2

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

    ソースコード(Groovy + JDBC Type2 + Oracle)

    import groovy.sql.Sql
    class Hello {
        static void main(args) {
            Sql sql = Sql.newInstance("jdbc:oracle:oci:@orcl", 
               "scott", "tiger", "oracle.jdbc.driver.OracleDriver")
            sql.eachRow("SELECT 'Hello, JDBC Type2 World!' AS Message FROM DUAL"){
                println it.Message
            }
        }
    }

    実行方法

    C:¥> groovy Hello.groovy
    C:¥> groovy -cp "ojdbc6.jar;." Hello.groovy

    実行結果

    Hello, JDBC Type2 World!
  6. Hello, JDBC Type1(Groovy) World!

    Posted on 10月 1st, 2012 by cx20

    JDBC Type1

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

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

    import groovy.sql.Sql
    class Hello {
        static void main(args) {
            Sql sql = Sql.newInstance("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=.\hello.mdb", 
               "", "", "sun.jdbc.odbc.JdbcOdbcDriver")
            sql.eachRow("SELECT 'Hello, JDBC Type1 World!' AS Message"){
                println it.Message
            }
        }
    }

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

    import groovy.sql.Sql
    class Hello {
        static void main(args) {
            Sql sql = Sql.newInstance("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=.\hello.accdb", 
               "", "", "sun.jdbc.odbc.JdbcOdbcDriver")
            sql.eachRow("SELECT 'Hello, JDBC Type1 World!' AS Message"){
                println it.Message
            }
        }
    }

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

    import groovy.sql.Sql
    class Hello {
        static void main(args) {
            Sql sql = Sql.newInstance("jdbc:odbc:Driver={SQL Server};SERVER=(local);DATABASE=master", 
               "sa", "P@ssword", "sun.jdbc.odbc.JdbcOdbcDriver")
            sql.eachRow("SELECT 'Hello, JDBC Type1 World!' AS Message"){
                println it.Message
            }
        }
    }

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

    import groovy.sql.Sql
    class Hello {
        static void main(args) {
            Sql sql = Sql.newInstance("jdbc:odbc:Driver={Oracle in OraDb11g_home1};DBQ=ORCL", 
               "scott", "tiger", "sun.jdbc.odbc.JdbcOdbcDriver")
            sql.eachRow("SELECT 'Hello, JDBC Type1 World!' AS Message FROM DUAL"){
                println it.Message
            }
        }
    }

    実行方法

    C:¥> groovy Hello.groovy

    実行結果

    Hello, JDBC Type1 World!
  7. Hello, ODBC(PHP) World!

    Posted on 9月 30th, 2012 by cx20

    ODBC

    ODBC(Open Database Connectivity)は、マイクロソフト社が提唱した DBMS 接続用の API 仕様である。
    DBMS の差異は ODBC ドライバによって吸収される為、ODBC の手順にしたがってプログラムを作成すれば、基本的な差異を意識せず、プログラムすることができる。

    ODBCドライバ ファイル
    Microsoft Access Driver (*.mdb) ODBCJT32.DLL
    Microsoft Text Driver (*.txt; *.csv) ODBCJT32.DLL
    Microsoft Excel Driver (*.xls) ODBCJT32.DLL
    Microsoft dBase Driver (*.dbf) ODBCJT32.DLL
    Microsoft ODBC for Oracle MSORCL32.DLL
    Microsoft Paradox Driver (*.db ) ODBCJT32.DLL
    SQL Server SQLSRV32.DLL
    Microsoft Access Driver (*.mdb, *.accdb) ACEODBC.DLL
    SQL Server Native Client 10.0 SQLNCLI10.DLL

    ソースコード(PHP + ODBC + SQL Server)

    <?php
    $cn = odbc_connect("Driver={SQL Server};Server=(local)", "sa", "P@ssW0rd");
    $rs = odbc_exec($cn, "SELECT 'Hello, ODBC World' AS Message");
     
    while (odbc_fetch_row($rs))
    {
        $result = odbc_result($rs, "Message");
        echo "Message", "n";
        echo "-------------------n";
        echo $result, "n";
    }
    odbc_close($cn);
    ?>

    実行方法(Windows)

    C:¥> php -f hello.php

    実行結果

    Message
    ------------------
    Hello, ODBC World!
  8. Hello, ADO(PHP) World!

    Posted on 9月 29th, 2012 by cx20

    ADO(PHP)

    ADO(ActiveX Data Objects)は、マイクロソフト社が開発した COM ベースの DBMS 接続用 API である。
    OLE DB プロバイダを介することで様々な DBMS への接続が可能となっている。
    OLE DB プロバイダとしては、以下のようなプロバイダがある。いくつかが OS 標準で付属している他、追加インストールが可能である。

    プロバイダ名 表示名 説明
    MSDASQL Microsoft OLE DB Provider for ODBC ODBC データベース
    Microsoft.Jet.OLEDB.4.0 Microsoft OLE DB Provider for Microsoft Jet Microsoft Jet データベース
    Microsoft.ACE.OLEDB.12.0 Microsoft Office 12.0 Access Database Engine OLE DB Provider Microsoft Access データベース
    SQLOLEDB Microsoft OLE DB Provider for SQL Server Microsoft SQL Server
    SQLNCLI10 SQL Server Native Client 10.0 Microsoft SQL Server
    MSDAORA Microsoft OLE DB Provider for Oracle Oracle データベース

    なお、PHP 5.4.5 / 5.3.15 より、COM サポートは既定では組み込まれていない為、使用するには、以下の設定を追加する必要がある。

    PHP 設定

    [COM_DOT_NET]
    extension = php_com_dotnet.dll

    ソースコード(PHP + ADO + OLEDB + Jet データベース)

    <?php
    $cn = new COM("ADODB.Connection");
    $cn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.Hello.mdb");
    $rs = $cn->Execute("SELECT 'Hello, ADO World!' AS Message");
     
    while (!$rs->EOF) {
        echo $rs->Fields[0]->name, "n";
        echo "-------------------n";
        echo $rs->Fields[0]->value, "n";
        $rs->MoveNext();
    }
     
    $rs->Close();
    $cn->Close();
    ?>

    ソースコード(PHP + ADO + OLEDB + ACE データベース)

    <?php
    $cn = new COM("ADODB.Connection");
    $cn->Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=.Hello.accdb");
    $rs = $cn->Execute("SELECT 'Hello, ADO World!' AS Message");
     
    while (!$rs->EOF) {
        echo $rs->Fields[0]->name, "n";
        echo "-------------------n";
        echo $rs->Fields[0]->value, "n";
        $rs->MoveNext();
    }
     
    $rs->Close();
    $cn->Close();
    ?>

    ソースコード(PHP + ADO + OLEDB + SQL Server)

    <?php
    $cn = new COM("ADODB.Connection");
    $cn->Open("Provider=SQLOLEDB;SERVER=(local);DATABASE=master", "sa", "P@ssW0rd");
    $rs = $cn->Execute("SELECT 'Hello, ADO World!' AS Message");
     
    while (!$rs->EOF) {
        echo $rs->Fields[0]->name, "n";
        echo "-------------------n";
        echo $rs->Fields[0]->value, "n";
        $rs->MoveNext();
    }
     
    $rs->Close();
    $cn->Close();
    ?>

    ソースコード(PHP + ADO + OLEDB + Oracle)

    <?php
    $cn = new COM("ADODB.Connection");
    $cn->Open("Provider=MSDAORA;Data Source=ORCL", "scott", "tiger");
    $rs = $cn->Execute("SELECT 'Hello, ADO World!' AS Message FROM DUAL");
     
    while (!$rs->EOF) {
        echo $rs->Fields[0]->name, "n";
        echo "-------------------n";
        echo $rs->Fields[0]->value, "n";
        $rs->MoveNext();
    }
     
    $rs->Close();
    $cn->Close();
    ?>

    実行方法(Windows)

    C:¥> php -f hello.php

    実行結果

    Message
    -----------------
    Hello, ADO World!
  9. Hello, PDO(PHP) World!

    Posted on 9月 28th, 2012 by cx20

    PDO

    SQL Server Driver for PHP はマイクロソフト社より提供されている PHP 向けの SQL Server ドライバである。
    ドライバの形式として、PHP 拡張形式と PDO(PHP Data Object)形式の2種類が存在する。
    以下は PDO 形式の SQL Server Driver の例となっている。

    なお、SQL Server ドライバは既定では組み込まれていない為、使用するには、以下の設定を追加する必要がある。

    PHP 設定(PHP 5.4 / スレッドセーフのドライバを指定した場合)

    extension = php_pdo_sqlsrv_54_ts.dll

    ソースコード(PHP + PHP 拡張 + SQL Server)

    <?php
    $dbh = new PDO('sqlsrv:server=(local);database=master', 'sa', 'P@ssW0rd'); 
    $sql = "SELECT 'Hello, PDO World!' AS Message"; 
    foreach ($dbh->query($sql) as $row) { 
        echo "Messagen";
        echo "-------------------n";
        echo $row[0]; 
    } 
    $dbh = null;
    ?>

    実行方法

    C:¥> php hello.php

    実行結果

    Message
    -------------------
    Hello, PDO World!
  10. Hello, SQL Server(PHP) World!

    Posted on 9月 27th, 2012 by cx20

    SQL Server Driver for PHP

    SQL Server Driver for PHP はマイクロソフト社より提供されている PHP 向けの SQL Server ドライバである。
    ドライバの形式として、PHP 拡張形式と PDO(PHP Data Object)形式の2種類が存在する。
    以下は PHP 拡張版の SQL Server Driver の例となっている。

    なお、SQL Server ドライバは既定では組み込まれていない為、使用するには、以下の設定を追加する必要がある。

    PHP 設定(PHP 5.4 / スレッドセーフのドライバを指定した場合)

    extension = php_sqlsrv_54_ts.dll

    ソースコード(PHP + PHP 拡張 + SQL Server)

    <?php
    $serverName = "(local)";
    $connectionInfo = array( "UID"=>"sa", "PWD"=>"P@ssW0rd", "Database"=>"master" );
    $conn = sqlsrv_connect( $serverName, $connectionInfo );
    $stmt = sqlsrv_query( $conn, "SELECT 'Hello, SQL Server(PHP) World!' AS Message" );
    while( $row = sqlsrv_fetch_array( $stmt ) ) {
        echo "Messagen";
        echo "-------------------n";
        echo $row[0]; 
    }
    sqlsrv_free_stmt( $stmt );
    sqlsrv_close( $conn );
    ?>

    実行方法

    C:¥> php hello.php

    実行結果

    Message
    -------------------
    Hello, SQL Server(PHP) World!