環境について
+ OS : Windows10 + JDK : JDK1.8 + Eclipse : Mars.2 Release (4.5.2) + Play : Play2.5.3(Streamy) + Data base : MySQL + O/Rマッパー : Ebean
サンプル
* ソースコードは以下の関連記事をベースにする。http://blogs.yahoo.co.jp/dk521123/36077858.html
サンプルデータ:MySQL
CREATE TABLE person ( id char(8) NOT NULL PRIMARY KEY, name varchar(100), sex char(1) ); INSERT INTO person( id, name, sex) VALUES ('X0000000', 'admin', 'm'), ('X0000001', 'Mike', 'm'), ('X0000002', 'Tom', 'm'); select * from person;
モデル
models/Person.javapackage models; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import com.avaje.ebean.Model; @Entity @Table(name = "person") public class Person extends Model { @Id @Column(name = "id") public String id; @Column(name = "name") public String name; @Column(name = "sex") public char sex; public static Find<String, Person> finder = new Find<String, Person>() { }; }
コントローラ
controllers/HelloWorldController.javapackage controllers; import java.util.List; import models.Person; import play.mvc.Controller; import play.mvc.Result; import views.html.*; public class HelloWorldController extends Controller { public Result index() { List<Person> people = Person.finder.all(); return ok(helloworld.render("Hello World!", people)); } }
ビュー
views/helloworld.scala.htmla@(title: String, people : List[Person]) <!DOCTYPE html> <html lang="ja"> <body> <h1>@title</h1> <table> <tr> <th>ID</th> <th>Name</th> <th>Sex</th> </tr> <tr> @for(person <- people){ <td>@person.id</td> <td>@person.name</td> <td>@person.sex</td> } </tr> </body> </html>
ビュー
* conf/routes・・・ GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset) # ↓↓↓↓↓Add(別にここは前の記事とは変わっていないけど)↓↓↓↓ GET /hello controllers.HelloWorldController.index()
参考文献
Play frameworkのDB操作を楽にするEBeanの基礎知識
http://www.atmarkit.co.jp/ait/articles/1206/06/news130.htmlhttp://www.atmarkit.co.jp/ait/articles/1206/06/news130_2.html
http://www.atmarkit.co.jp/ait/articles/1206/06/news130_3.html