JSPで動作しているということなら、Servletでもコーディングしてみよう
とうわけで、「多忙な Java 開発者のための Scala ガイド: Scala とサーブレット」を参考にして Scala によるデータベースへのアクセスを持ったサーブレットを記述しました。
このサーブレットを TOMCAT に設定する手順は「多忙な、、、」と同じなので省略。
これまでのコードはすべて自前でデータベースコネクションをゲットしていますが、TOMCATなのでデータソースをみてコネクションプールからコネクションを取得したいですね。
package SeeDo import javax.servlet.http.{HttpServlet,HttpServletRequest => HSReq, HttpServletResponse => HSResp} import java.sql.{DriverManager, Connection, Statement, ResultSet,SQLException} import java.util.Date class HelloScalaServlet extends HttpServlet { override def doGet(req : HSReq, resp : HSResp) = "<HEAD><TITLE>Hello, Scala!</TITLE></HEAD>" + "<BODY>" + "Hello, Scala! This is a servlet.<BR><BR>" + oracle + "</BODY>" + "</HTML>") val jdbcURL = "jdbc:oracle:thin:@192.168.0.105:1521:ORCL" def oracle() : String = { var html:String = "" try { Class.forName("oracle.jdbc.driver.OracleDriver").newInstance() var con = DriverManager.getConnection(jdbcURL,"scott","tiger") try { var stmt = con.createStatement() var rs = stmt.executeQuery("SELECT * FROM EMP") while (rs.next()){ val two = rs.getInt("empno") :: rs.getString("ename") :: rs.getInt("deptno"):: Nil html = html + two.toString + "<BR>" } stmt.close(); } catch { case e:SQLException => println("Database error "+e) case e => { println("Some other exception type:") e.printStackTrace() } } finally { con.close() } } catch { case e:SQLException => println("Database error "+e) case e => { println("Some other exception type:") e.printStackTrace() } } html } }
コメントを残す
コメントを投稿するにはログインしてください。