環境について
+ 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