Play框架7版本教程-数据模型的首次迭代.doc

Play框架7版本教程-数据模型的首次迭代.doc

ID:56673723

大小:253.50 KB

页数:18页

时间:2020-07-04

Play框架7版本教程-数据模型的首次迭代.doc_第1页
Play框架7版本教程-数据模型的首次迭代.doc_第2页
Play框架7版本教程-数据模型的首次迭代.doc_第3页
Play框架7版本教程-数据模型的首次迭代.doc_第4页
Play框架7版本教程-数据模型的首次迭代.doc_第5页
资源描述:

《Play框架7版本教程-数据模型的首次迭代.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、·数据模型的首次迭代接下来我们要开始完成我们的博客引擎的模型部分。JPA入门模型层是一个Play应用的核心(对于其他Web框架也同样成立)。它是一个对应用操作的资源的领域特定的表示。因为我们想要创建一个博客引擎,模型层就包括User,Post和Comment(用户,博文和评论)。因为大多数模型对象需要在应用停止运行时保留下来,我们需要把它们存储在持久性数据库中。一个普遍的选择是使用关系型数据库。因为Java是一个面向对象的语言,我们将使用一个ORM来减少一些繁琐的工作。JPA是一个给ORM定义一套标准API的Java规。作为一

2、个JPA的实现,Play使用猿媛皆知的Hibernate框架。之所以使用JPA而不是原生的HibernateAPI,是因为这样所有的映射都可以用Java对象直接完成。如果之前用过Hibernate或JPA,你将惊讶于Play所添加的包装。不再需要配置什么了;JPA与Play框架合一。如果你不知道JPA,你可以在继续之前阅读一些JPA实现的介绍User类我们首先来完成User类。创建新文件/yabe/app/models/User.java,并写入下面的容:packagemodels;importjava.util.*;impo

3、rtjavax.persistence.*;importplay.db.jpa.*;Word资料·EntitypublicclassUserextendsModel{publicStringemail;publicStringpassword;publicStringfullname;publicbooleanisAdmin;publicUser(Stringemail,Stringpassword,Stringfullname){this.email=email;this.password=password;this.ful

4、lname=fullname;}}Entity注解(annotation)标记该类成为托管的JPA实体(managedJPAEntity),而Model父类将自动提供一些接下来将会用到的有用的JPA辅助函数。这个类的所有成员变量都会被持久化到数据库中。默认情况下,对应的表就是'User'。如果想要使用一个'user'是保留关键字的数据库,你需要给JPA映射指定一个不同的表名。要想这么做,使用Table(name="blog_user")注解User类。你的模型对象不一定得继承自play.db.jpa.Model类。你也可以使用

5、原生JPA。但继承自该类往往是个更好的选择,因为它使得运用JPA变得更为简单。如果之前用过JPA,你知道每个JPA实体都需要提供一个Id属性。在这里,Model父类已经提供了一个自动生成的ID,在大多数情况下,这样就行了。不要认为生成的id成员变量是函数变量(functionalidentifier),其实它是技术变量(technicalidentifier)。区分这两概念通常是个好主意,记住自动生成的ID是一个技术变量(译注:这里我弄不懂,以下附上原文)Word资料·Don’tthinkaboutthisprovided i

6、d fieldasafunctionalidentifierbutasatechnicalidentifier.ItisgenerallyagoodideatokeepbothconceptsseparatedandtokeepanautomaticallygeneratednumericIDasatechnicalidentifier.如果你写过Java,心中可能已经敲起了警钟,因为我们居然大量使用公有成员!在Java(一如其他面向对象语言),最佳实践通常是尽量保持各成员私有,并提供getter和setter。这就是封装,面

7、向对象设计的基本概念之一。事实上,Play已经考虑到这一点,在自动生成getter和setter的同时保持封装;等下我们将看到它是怎么做到的。现在你可以刷新主页面,看一下结果。当然,除非你犯错,否则应该什么变化都看不到:D。Play自动编译并加载了User类,不过这没有给应用添加任何新特性。写下第一个测试测试新增的User类的一个好方法是写下JUnit测试用例。它会允许你增量开发的同时保证一切安好。要运行一个测试用例,你需要在'test'模式下运行应用。停止当前正在运行的应用,打开命令行并输入:~$playtestplayte

8、st命令就像playrun,不过它加载的是一个测试运行器模块,使得你可以直接在浏览器中运行测试套件。Word资料·当你在testmode中运行Play应用时,Play会自动切换到test框架ID并加载对应的application.conf。阅读框架ID文档来了解更多。在浏览器

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。