# play2(scala)からmysqlのデータ取得して、表示するまで
データの準備
前々回 http://shinofara.hateblo.jp/entry/2014/01/16/232308 作成した、Mysqlとテーブルを使います。
Userテーブルには以下のデータが入ってる状態にします。
insert into user(`name`,`email`,`password`) values('hoge_name','hoge@test.com','1234'); insert into user(`name`,`email`,`password`) values('hoge_name_2','hoge2@test.com','5678');
Controllerからデータ取得
ライブラリをimportする記述追加
import play.api.Play.current import play.api.mvc.Results._ import play.api.db._ import anorm._
レコードを全件取得して、Listへ格納
implicit val connection = DB.getConnection() val selectUsers = SQL("Select * from user") val users = selectUsers().map(row => Map('name -> row[String]("name"), 'email -> row[String]("email"))).toList
viewテンプレートへデータを渡す
Ok(views.html.mydb("DBつないでみたよ", users))
ViewTemplateで表示
app/views/mydb.scala.html
@(message:String,userList:List[Map[Symbol, String]]) @main("show scala templates") { <h1>@message</h1> <ul> @userList.map { user => <li><p>@user('name) -> @user('email)</p></li> } </ul> }
ブラウザで確認すると DBつないでみたよ hoge_name -> hoge@test.com hoge_name_2 -> hoge2@test.com と表示されました。
もう少し、scalaなりplay2なりの記述法を覚えてから、 次は、ORMに挑戦しようと思います。