Archive for the ‘Scala’ Category

  1. 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!
  2. Hello, Scala World!

    Posted on 1月 7th, 2012 by cx20

    Scala

    Scala はオブジェクト指向言語と関数型言語の特徴を組み合わせた比較的新しいプログラミング言語である。Java VM 上で動作する。Java の後継を担うものとしても注目を浴びている。
    並行プロセス処理が優れているということで Twitter のメッセージ基盤(API の実装)にも採用されている。
    なお、Java VM で動作するスクリプト言語としては、他にも、Groovy、JRuby、Jython、Clojure 等がある。

    ソースコード

    object Hello {
        def main(args: Array[String]) {
            println("Hello, Scala World!")
        }
    }

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

    $ scala Hello.scala

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

    $ scalac Hello.scala
    $ scala Hello

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

    $ scalac Hello.scala
    $ java -cp $SCALA_HOME/lib/scala-library.jar:. Hello

    実行結果

    Hello, Scala World!