play framework框架(二)

接下来我们开始完成我们的博客引擎的模型部分。

JPA


模型层是一个Play应用的核心(对于其他Web框架也是一样)。它是一个对应用操作的资源的领域特定的表示。因为我们想要创建一个博客殷勤,模型层就包括User,Post和Comment(用户,博文和评论)。

因为大多数模型对象需要在应用停止运行时保留下来,我们需要把它存储在持久数据库中。一个普遍的选择是使用关系型数据库。因为Java是一个面向对象的语言,我们将使用一个ORM来减少一些繁琐的工作。

JPA是一个给ORM定义一套API的Java规范。作为一个JPA的实现,Play使用Hibernate框架。之所以使用JPA而不是原生的Hibernate API,是因为这样所有的映射都可以用Java对象直接完成。

如果之前用过Hibernate或JPA,你将惊讶于Play锁添加的包装。不需要配置任何东西;JPA与Play框架合一。

User类


我们首先来完成User类。创建类文件/yabe/app/models/User.java ,

package models;
import java.util.*;
import javax.persistence.*;
import play.db.jpa.*;

@Entity
public class User extends Model {
    public String email;
    public String password;
    public String fullname;
    public boolean isAdmin;
    public User(String email,String password,String fullname){
        this.email = email;
        this.password = password;
        this.fullname = fullname;
    }
}

@Entity注解(annotation)标记该类称为托管的JPA实体(managed JPA Entity),而Model父类将自动提供一些接下来将会用到的有用的JPA辅助函数。这个类的所有成员变量都会被持久化到数据库中。

默认情况下,对应的表就是’User’。如果想要使用一个’user’是保留关键字的数据库,你需要给JPA映射指定一个不同的表名。要想这么做,使用@Tbale(name="blog_user")注解User类。

如果你写过Java,我们大量使用公共成员,在Java(一如其它面向对象语言),最佳实践通常是尽量保持各成员私有,并提供gettersetter 。这就是封装,面向对象设计的基本概念之一。事实上,Play已经考虑到这一点了,在自动生成gettersetter 的同时保持封装。

第一个测试


测试新增的User类的一个好方法就是JUnit测试用例。它允许你增加开发的同时保证一切安好。
要运行一个测试用例,你需要在test 模式下运行应用。

~$ play test

play test命令就想play run,不过它加载的是一个测试运行器模块,使得你可以直接在浏览器中运行测试套件。
在浏览器打开http://localhost:9000/@tests页面来看看测试运行器。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值