从数据需要持久化
重启应用之后还能保持之前的状态
一般使用关系型数据库
ORM
JPA(JAVA Persistence API)
定义了一系列实现ORM的标准
Play Framework使用Hibernate的JPA实现
在Play中使用JPA,不需要任何配置
配置
conf/application.conf
找到
# Database configuration # ~~~~~ # Enable a database engine if needed. #
例如要使用mysql
去掉db.defalut=mysql...前的#
填写用户:密码@主机名/数据库
由于没有配置mysql数据库,所以使用mem
去掉第85行前面的#
定义一个模型类
app/models/user.java
@Entity解释
@Entity 表明该类 (UserEntity) 为一个实体类,它默认对应数据库中的表名是user_entity。这里也可以写成
@Entity(name = "xwj_user")
或者
@Entity
@Table(name = "xwj_user", schema = "test")
查看@Entity注解,发现其只有一个属性name,表示其所对应的数据库中的表名
extends Model
1 package models; 2 import javax.persistence.Entity; 3 import play.db.jpa.Model; 4 @Entity 5 public class user extends Model{ 6 public String email; 7 public String password; 8 public String fullname; 9 public boolean isAdmin; 10 public user(String em,String pwd, String fn) { 11 email = em; 12 password = pwd; 13 fullname = fn; 14 15 } 16 }
使用模型类
1 package controllers; 2 3 import play.*; 4 import play.db.jpa.GenericModel.JPAQuery; 5 import play.mvc.*; 6 7 import java.util.*; 8 9 import models.*; 10 11 public class Application extends Controller { 12 public static void index() { 13 user u = new user("aa.com","as","aaa"); 14 u.save(); 15 user bob = user.find("byEmail", "aa.com").first(); 16 System.out.print(bob.email); 17 render(); 18 } 19 public static void hello() { 20 render(); 21 } 22 }
最后运行:
成功输出bob.email