MySQLに接続してSELECTします。
今回は、Bean を使います。
DEPT表の Bean を生成して、BeanのSELECTしたレコードデータを格納します。
executeQuery関数でデータをデータベースから取りこみ ArrayBuffer[T] として返します。
package test import seedo.database._ import scott.bean._ object sample03 { // val driverName = "oracle.jdbc.driver.OracleDriver" val driverName = "com.mysql.jdbc.Driver" // val dns = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL" val dns = "jdbc:mysql://127.0.0.1:3306/seedo?useUnicode=true&characterEncoding=UTF-8" val user ="scott" val password ="tiger" var dbx:Db = null def scala1 :Unit = { try { dbx = new Db(driverName, dns, user, password) dbx.select("*").from("DEPT").where("deptno >= ?",10).orderBy("dname") println(" --- BEAN") println(dbx.toString) println(dbx.getSql) dbx.executeQuery[DEPT](classOf[DEPT]).foreach(c =>{ println(c.toString) println(c.toJson) println(c.toXml) println(c.toXmlModified) println("-----------------") }) println(" --- ColumnNameList") dbx.getColumnNameList.foreach(c =>{ print(" " + c) }) println } catch { case e:Exception => {println(e.getMessage)} } finally { dbx.close } } def main(args : Array[String]) : Unit = { scala1 } }
データの出力形式は、toString 関数はカンマ区切り、toJson 関数はJSON形式、toXml 関数はXML形式、toXmlModified 関数はXML形式でSELECTしたカラムのみ出力します。
c.toString c.toJson c.toXml c.toXmlModified
driverName と dns のコメントを入れ替えればMySQL から Oracle に接続します。
実行した結果です。
JDBC Driver:MySQL-AB JDBC Driver Version:mysql-connector-java-5.1.13 ( Revision: ${bzr.revision-id} ) Database:MySQL Version:5.5 --- BEAN select * from DEPT where deptno >= ? order by dname [10] select * from DEPT where deptno >= ? order by dname 10,ACCOUNTING,NEW YORK {"DEPT" : {"DEPTNO" : "10","DNAME" : "ACCOUNTING","LOC" : "NEW YORK"}} <DEPT><DEPTNO>10</DEPTNO><DNAME>ACCOUNTING</DNAME><LOC>NEW YORK</LOC></DEPT> <DEPT><DEPTNO>10</DEPTNO><DNAME>ACCOUNTING</DNAME><LOC>NEW YORK</LOC></DEPT> ----------------- 40,OPERATIONS,BOSTON {"DEPT" : {"DEPTNO" : "40","DNAME" : "OPERATIONS","LOC" : "BOSTON"}} <DEPT><DEPTNO>40</DEPTNO><DNAME>OPERATIONS</DNAME><LOC>BOSTON</LOC></DEPT> <DEPT><DEPTNO>40</DEPTNO><DNAME>OPERATIONS</DNAME><LOC>BOSTON></LOC></DEPT> ----------------- 20,RESEARCH,DALLAS {"DEPT" : {"DEPTNO" : "20","DNAME" : "RESEARCH","LOC" : "DALLAS"}} <DEPT><DEPTNO>20</DEPTNO><DNAME>RESEARCH</DNAME><LOC>DALLAS</LOC></DEPT> <DEPT><DEPTNO>20</DEPTNO><DNAME>RESEARCH</DNAME><LOC>DALLAS</LOC></DEPT> ----------------- 30,SALES,CHICAGO {"DEPT" : {"DEPTNO" : "30","DNAME" : "SALES","LOC" : "CHICAGO"}} <DEPT><DEPTNO>30</DEPTNO><DNAME>SALES</DNAME><LOC>CHICAGO</LOC></DEPT> <DEPT><DEPTNO>30</DEPTNO><DNAME>SALES</DNAME><LOC>CHICAGO</LOC></DEPT> ----------------- --- ColumnNameList DEPTNO DNAME LOC
コメントを残す
コメントを投稿するにはログインしてください。