Scala+DBMS+Web スカラ座の夜

2012年1月4日

Java Object[] を Scala Array にてアクセス

Filed under: Scala — admin @ 12:16 AM

Javaで作ったDBクラスのSelect文の結果を、複数レコードをArrayListで、1レコードをObject[] 配列で返す仕様で作りました。

これをScalaで受け取るには、Java配列をScalaで使うには以下のように書きます。

val f: Array[Object] = record.asInstanceOf[Array[Object]]

これを使ったプログラム。

package ews.servlet

import seedo.database._
import java.io.PrintWriter

class db02 {
	def run(out:PrintWriter) : Unit = {
		val sqlplus = new SqlPlus
		try {
			val records = sqlplus.select("*").from("EMP").whereParam("EMPNO=? OR EMPNO=? OR ENAME=?",Array(new Integer(7788),new Integer(7521),"JONES") ).orderBy("ENAME").executeQuery
			out.println("<table border='1'>")
			for(i <- 0 to records.size-1) {
				val record = records.get(i)
				val f: Array[Object] = record.asInstanceOf[Array[Object]] 
				out.println("<tr>")
				for(j <- 0 to f.length-1) {
					out.println("<td>" + (if(f(j)!=null){f(j)}else{""}) + "</td>")
				}
				out.println("</tr>")
			}
			out.println("</table>")
		} finally {
			sqlplus.close
		}
	}
}

可変長引数

Javaの可変長引数についてJDK1.4で可変長引数を使えるように作った whereParam関数。
JDK1.5以降ではwhere関数は…で可変長引数が使える。

引数をArray配列にして渡します。

Comments

comments

Powered by Facebook Comments

コメントはまだありません

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress