- 浏览: 498408 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (339)
- C# (2)
- Java集合 (7)
- Java设计模式 (15)
- Java基础 (31)
- Java-Spring (7)
- Java-Spring AOP (9)
- Java-Spring Transaction (6)
- Java-Hibernate (13)
- Jsp (7)
- JSTL (2)
- 加密解密 (13)
- sql (3)
- 数据库技术 (7)
- JQuery (2)
- css (3)
- JavaScript (19)
- Linux (34)
- 项目管理 (5)
- Tomcat (5)
- Oracle (4)
- axis2 (5)
- Linux c/c++ (40)
- Linux 防火墙及抓包分析 (10)
- Linux 环境配置 (3)
- Linux 高级命令 (14)
- Linux Server 配置 (9)
- c++ 内存管理 (4)
- JUnit (1)
- SSL 通信 (2)
- windows 系统调试 (8)
- 字符串处理 (8)
- 排序算法 (7)
- ACE (1)
- IT技术 (1)
- 敏捷开发 (1)
- TCPIP (4)
- 汇编语言 (7)
- STL (2)
- Struts (1)
- iBatis (3)
- 音视频开发 (2)
- Java多线程 (3)
- 架构设计 (2)
- Java网络编程 (1)
- Ubantu (0)
- Eclipse (2)
最新评论
-
df270464278:
请问博主有遇到中文乱码的问题吗?就是json字符串里面包含中文 ...
cur发送json字符串, post 请求 -
ykbj117:
你们知道刘绍华么?就是北邮的一个教授,专门研究WebRTC的资 ...
WebRTC -
隐形的翅膀:
不会用powershell
去除SVN标志 -
lengbamboo:
改注册表比较危险,给个powershell的脚本:powers ...
去除SVN标志 -
hedong56:
[/b][b][i][/i][u][/u][flash=20 ...
JAVASCRIPT定义对象的四种方式
Play Framework框架 JPA常用注解
1、@Entity(name="EntityName")
必须 ,name 为可选 , 对应数据库中一的个表
2、@Table(name="",catalog="",schema="")
可选 , 通常和 @Entity 配合使用 , 只能标注在实体的 class 定义处 , 表示实体对应的数据库表的信息
name: 可选 , 表示表的名称 . 默认地 , 表名和实体名称一致 , 只有在不一致的情况下才需要指定表名
catalog: 可选 , 表示 Catalog 名称 , 默认为 Catalog("").
schema: 可选 , 表示 Schema 名称 , 默认为 Schema("").
3、@id
必须
@id 定义了映射到数据库表的主键的属性 , 一个实体只能有一个属性被映射为主键 . 置于 getXxxx() 前 .
4、@GeneratedValue(strategy=GenerationType,generator="")
可选
strategy: 表示主键生成策略 , 有 AUTO,INDENTITY,SEQUENCE 和 TABLE 4 种 , 分别表示让 ORM 框架自动选择 ,
根据数据库的 Identity 字段生成 , 根据数据库表的 Sequence 字段生成 , 以有根据一个额外的表生成主键 , 默认为 AUTO
generator: 表示主键生成器的名称 , 这个属性通常和 ORM 框架相关 , 例如 ,Hibernate 可以指定 uuid 等主键生成方式 .
示例 :
@Id
@GeneratedValues(strategy=StrategyType.SEQUENCE)
public int getPk() {
return pk;
}
5、@Basic(fetch=FetchType,optional=true)
可选
@Basic 表示一个简单的属性到数据库表的字段的映射 , 对于没有任何标注的 getXxxx() 方法 , 默认即为 @Basic
fetch: 表示该属性的读取策略 , 有 EAGER 和 LAZY 两种 , 分别表示主支抓取和延迟加载 , 默认为 EAGER.
optional: 表示该属性是否允许为 null, 默认为 true
示例 :
@Basic(optional=false)
public String getAddress() {
return address;
}
6、@Column
可选
@Column 描述了数据库表中该字段的详细定义 , 这对于根据 JPA 注解生成数据库表结构的工具非常有作用 .
name: 表示数据库表中该字段的名称 , 默认情形属性名称一致
nullable: 表示该字段是否允许为 null, 默认为 true
unique: 表示该字段是否是唯一标识 , 默认为 false
length: 表示该字段的大小 , 仅对 String 类型的字段有效
insertable: 表示在 ORM 框架执行插入操作时 , 该字段是否应出现 INSETRT 语句中 , 默认为 true
updateable: 表示在 ORM 框架执行更新操作时 , 该字段是否应该出现在 UPDATE 语句中 , 默认为 true. 对于一经创建就不可以更改的字段 , 该属性非常有用 , 如对于 birthday 字段 .
columnDefinition: 表示该字段在数据库中的实际类型 . 通常 ORM 框架可以根据属性类型自动判断数据库中字段的类型 , 但是对于 Date 类型仍无法确定数据库中字段类型究竟是 DATE,TIME 还是 TIMESTAMP. 此外 ,String 的默认映射类型为 VARCHAR, 如果要将 String 类型映射到特定数据库的 BLOB 或 TEXT 字段类型 , 该属性非常有用 .
示例 :
@Column(name="BIRTH",nullable="false",columnDefinition="DATE")
public String getBithday() {
return birthday;
}
7、@Transient
可选
@Transient 表示该属性并非一个到数据库表的字段的映射 ,ORM 框架将忽略该属性 .
如果一个属性并非数据库表的字段映射 , 就务必将其标示为 @Transient, 否则 ,ORM 框架默认其注解为 @Basic
示例 :
// 根据 birth 计算出 age 属性
@Transient
public int getAge() {
return getYear(new Date()) - getYear(birth);
}
8、@ManyToOne(fetch=FetchType,cascade=CascadeType )
可选
@ManyToOne 表示一个多对一的映射 , 该注解标注的属性通常是数据库表的外键
optional: 是否允许该字段为 null, 该属性应该根据数据库表的外键约束来确定 , 默认为 true
fetch: 表示抓取策略 , 默认为 FetchType.EAGER
cascade: 表示默认的级联操作策略 , 可以指定为 ALL,PERSIST,MERGE,REFRESH 和 REMOVE 中的若干组合 , 默认为无级联操作
targetEntity: 表示该属性关联的实体类型 . 该属性通常不必指定 ,ORM 框架根据属性类型自动判断 targetEntity.
示例 :
// 订单 Order 和用户 User 是一个 ManyToOne 的关系
// 在 Order 类中定义
@ManyToOne()
@JoinColumn(name="USER")
public User getUser() {
return user;
}
9、@JoinColumn
可选
@JoinColumn 和 @Column 类似 , 介量描述的不是一个简单字段 , 而一一个关联字段 , 例如 . 描述一个 @ManyToOne 的字段 .
name: 该字段的名称 . 由于 @JoinColumn 描述的是一个关联字段 , 如 ManyToOne, 则默认的名称由其关联的实体决定 .
例如 , 实体 Order 有一个 user 属性来关联实体 User, 则 Order 的 user 属性为一个外键 ,
其默认的名称为实体 User 的名称 + 下划线 + 实体 User 的主键名称
示例 :
见 @ManyToOne
10、@OneToMany(fetch=FetchType,cascade=CascadeType)
可选
@OneToMany 描述一个一对多的关联 , 该属性应该为集体类型 , 在数据库中并没有实际字段 .
fetch: 表示抓取策略 , 默认为 FetchType.LAZY, 因为关联的多个对象通常不必从数据库预先读取到内存
cascade: 表示级联操作策略 , 对于 OneToMany 类型的关联非常重要 , 通常该实体更新或删除时 , 其关联的实体也应当被更新或删除
例如 : 实体 User 和 Order 是 OneToMany 的关系 , 则实体 User 被删除时 , 其关联的实体 Order 也应该被全部删除
示例 :
@OneTyMany(cascade=ALL)
public List getOrders() {
return orders;
}
11、@OneToOne(fetch=FetchType,cascade=CascadeType)
可选
@OneToOne 描述一个一对一的关联
fetch: 表示抓取策略 , 默认为 FetchType.LAZY
cascade: 表示级联操作策略
示例 :
@OneToOne(fetch=FetchType.LAZY)
public Blog getBlog() {
return blog;
}
12、@ManyToMany
可选
@ManyToMany 描述一个多对多的关联 . 多对多关联上是两个一对多关联 , 但是在 ManyToMany 描述中 , 中间表是由 ORM 框架自动处理
targetEntity: 表示多对多关联的另一个实体类的全名 , 例如 :package.Book.class
mappedBy: 表示多对多关联的另一个实体类的对应集合属性名称
示例 :
User 实体表示用户 ,Book 实体表示书籍 , 为了描述用户收藏的书籍 , 可以在 User 和 Book 之间建立 ManyToMany 关联
@Entity
public class User {
private List books;
@ManyToMany(targetEntity=package.Book.class)
public List getBooks() {
return books;
}
public void setBooks(List books) {
this.books=books;
}
}
@Entity
public class Book {
private List users;
@ManyToMany(targetEntity=package.Users.class, mappedBy="books")
public List getUsers() {
return users;
}
public void setUsers(List users) {
this.users=users;
}
}
两个实体间相互关联的属性必须标记为 @ManyToMany, 并相互指定 targetEntity 属性 ,
需要注意的是 , 有且只有一个实体的 @ManyToMany 注解需要指定 mappedBy 属性
13、@TransactionAttribute
事务管理服务
最有用的容器服务可能就是事务管理服务,当应用出现失败或异常时,它保证了数据库的完整性。你可以简单地将为一个 POJO 方法申明它的事务属性。这样容器就可以在合适的上下文中运行这个方法。最常见的事务是定义在 session bean 的方法上,方法中所有的数据库操作只有在方法正常退出时才会提交,如果方法抛出未捕获的异常,事务管理将回滚所有的变更。
14、@PersistenceContextType
当Play发现javax.persistence.Entity时, 会自动启动Hibernate entity manager
JPA entity manager is started you can get it from the application cod
Query query = JPA.em().createQuery("select * from Article");
List<Article> articles = query.getResultList();
render(articles);
事务管理。
Play will automatically manage transactions for you. It will start a transaction for each HTTP request and commit it when the HTTP response is sent. If your code throws an exception, the transaction will automatically rollback.
If you need to force transaction rollback from the application code, you can use the JPA.setRollbackOnly() method.
Find by ID
The simplest way to find an object.
Post aPost = Post.findById(5L);
Find all
List<Post> posts = Post.findAll();
This is the simplest way to retrieve all posts, but you can do the same using:
List<Post> posts = Post.all().fetch();
This allows you to paginate results:
List<Post> posts = Post.all().fetch(100); // 100 max posts
or even,
List<Post> posts = Post.all().from(50).fetch(100); // 100 max posts start at
#{if licData.daysBeforeExpired<=180 && licData.daysBeforeExpired>0}
<div class="common-note wornning" style="margin-top:13px;margin-bottom:16px;">
<p>
#{if licData.daysBeforeExpired>1}
&{'license.page.free.expiring',licData.daysBeforeExpired}
#{/if}
#{if licData.daysBeforeExpired<=1}
&{'license.page.free.expiring.1day',licData.daysBeforeExpired}
#{/if}
</p>
</div>
#{/if}
Query query = JPA.em().createQuery("select * from Article");
List<Article> articles = query.getResultList();
render(articles);
List<Post> posts = Post.all().from(50).fetch(100); // 100 max posts start at 50
Play应用开发者一开始可能经常会犯的错误是使用Hibernate的@Entity注解来取代JPA。这里请读者注意,Play是直接调用JPA的API来使用Hibernate。
EntityManager em = JPA.em();
em.persist(product);
em.createQuery("from Product where price > 50").getResultList();
Tomcat 多个APP共享数据库连接池
//looking up for the data source name registered in JNDI through Tomcat server.xml and context.xml files
DataSource ds = (DataSource) ctx.lookup(dsName);
//找到驱动程序并注册
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
//取得数据源
ds = (DataSource) envContext.lookup("jdbc/jlndb");
//以下为另一种取得数据源的方式
//ds = (DataSource) initContext.lookup("java:comp/env/jdbc/jlndb");
//取得数据库连接
1、@Entity(name="EntityName")
必须 ,name 为可选 , 对应数据库中一的个表
2、@Table(name="",catalog="",schema="")
可选 , 通常和 @Entity 配合使用 , 只能标注在实体的 class 定义处 , 表示实体对应的数据库表的信息
name: 可选 , 表示表的名称 . 默认地 , 表名和实体名称一致 , 只有在不一致的情况下才需要指定表名
catalog: 可选 , 表示 Catalog 名称 , 默认为 Catalog("").
schema: 可选 , 表示 Schema 名称 , 默认为 Schema("").
3、@id
必须
@id 定义了映射到数据库表的主键的属性 , 一个实体只能有一个属性被映射为主键 . 置于 getXxxx() 前 .
4、@GeneratedValue(strategy=GenerationType,generator="")
可选
strategy: 表示主键生成策略 , 有 AUTO,INDENTITY,SEQUENCE 和 TABLE 4 种 , 分别表示让 ORM 框架自动选择 ,
根据数据库的 Identity 字段生成 , 根据数据库表的 Sequence 字段生成 , 以有根据一个额外的表生成主键 , 默认为 AUTO
generator: 表示主键生成器的名称 , 这个属性通常和 ORM 框架相关 , 例如 ,Hibernate 可以指定 uuid 等主键生成方式 .
示例 :
@Id
@GeneratedValues(strategy=StrategyType.SEQUENCE)
public int getPk() {
return pk;
}
5、@Basic(fetch=FetchType,optional=true)
可选
@Basic 表示一个简单的属性到数据库表的字段的映射 , 对于没有任何标注的 getXxxx() 方法 , 默认即为 @Basic
fetch: 表示该属性的读取策略 , 有 EAGER 和 LAZY 两种 , 分别表示主支抓取和延迟加载 , 默认为 EAGER.
optional: 表示该属性是否允许为 null, 默认为 true
示例 :
@Basic(optional=false)
public String getAddress() {
return address;
}
6、@Column
可选
@Column 描述了数据库表中该字段的详细定义 , 这对于根据 JPA 注解生成数据库表结构的工具非常有作用 .
name: 表示数据库表中该字段的名称 , 默认情形属性名称一致
nullable: 表示该字段是否允许为 null, 默认为 true
unique: 表示该字段是否是唯一标识 , 默认为 false
length: 表示该字段的大小 , 仅对 String 类型的字段有效
insertable: 表示在 ORM 框架执行插入操作时 , 该字段是否应出现 INSETRT 语句中 , 默认为 true
updateable: 表示在 ORM 框架执行更新操作时 , 该字段是否应该出现在 UPDATE 语句中 , 默认为 true. 对于一经创建就不可以更改的字段 , 该属性非常有用 , 如对于 birthday 字段 .
columnDefinition: 表示该字段在数据库中的实际类型 . 通常 ORM 框架可以根据属性类型自动判断数据库中字段的类型 , 但是对于 Date 类型仍无法确定数据库中字段类型究竟是 DATE,TIME 还是 TIMESTAMP. 此外 ,String 的默认映射类型为 VARCHAR, 如果要将 String 类型映射到特定数据库的 BLOB 或 TEXT 字段类型 , 该属性非常有用 .
示例 :
@Column(name="BIRTH",nullable="false",columnDefinition="DATE")
public String getBithday() {
return birthday;
}
7、@Transient
可选
@Transient 表示该属性并非一个到数据库表的字段的映射 ,ORM 框架将忽略该属性 .
如果一个属性并非数据库表的字段映射 , 就务必将其标示为 @Transient, 否则 ,ORM 框架默认其注解为 @Basic
示例 :
// 根据 birth 计算出 age 属性
@Transient
public int getAge() {
return getYear(new Date()) - getYear(birth);
}
8、@ManyToOne(fetch=FetchType,cascade=CascadeType )
可选
@ManyToOne 表示一个多对一的映射 , 该注解标注的属性通常是数据库表的外键
optional: 是否允许该字段为 null, 该属性应该根据数据库表的外键约束来确定 , 默认为 true
fetch: 表示抓取策略 , 默认为 FetchType.EAGER
cascade: 表示默认的级联操作策略 , 可以指定为 ALL,PERSIST,MERGE,REFRESH 和 REMOVE 中的若干组合 , 默认为无级联操作
targetEntity: 表示该属性关联的实体类型 . 该属性通常不必指定 ,ORM 框架根据属性类型自动判断 targetEntity.
示例 :
// 订单 Order 和用户 User 是一个 ManyToOne 的关系
// 在 Order 类中定义
@ManyToOne()
@JoinColumn(name="USER")
public User getUser() {
return user;
}
9、@JoinColumn
可选
@JoinColumn 和 @Column 类似 , 介量描述的不是一个简单字段 , 而一一个关联字段 , 例如 . 描述一个 @ManyToOne 的字段 .
name: 该字段的名称 . 由于 @JoinColumn 描述的是一个关联字段 , 如 ManyToOne, 则默认的名称由其关联的实体决定 .
例如 , 实体 Order 有一个 user 属性来关联实体 User, 则 Order 的 user 属性为一个外键 ,
其默认的名称为实体 User 的名称 + 下划线 + 实体 User 的主键名称
示例 :
见 @ManyToOne
10、@OneToMany(fetch=FetchType,cascade=CascadeType)
可选
@OneToMany 描述一个一对多的关联 , 该属性应该为集体类型 , 在数据库中并没有实际字段 .
fetch: 表示抓取策略 , 默认为 FetchType.LAZY, 因为关联的多个对象通常不必从数据库预先读取到内存
cascade: 表示级联操作策略 , 对于 OneToMany 类型的关联非常重要 , 通常该实体更新或删除时 , 其关联的实体也应当被更新或删除
例如 : 实体 User 和 Order 是 OneToMany 的关系 , 则实体 User 被删除时 , 其关联的实体 Order 也应该被全部删除
示例 :
@OneTyMany(cascade=ALL)
public List getOrders() {
return orders;
}
11、@OneToOne(fetch=FetchType,cascade=CascadeType)
可选
@OneToOne 描述一个一对一的关联
fetch: 表示抓取策略 , 默认为 FetchType.LAZY
cascade: 表示级联操作策略
示例 :
@OneToOne(fetch=FetchType.LAZY)
public Blog getBlog() {
return blog;
}
12、@ManyToMany
可选
@ManyToMany 描述一个多对多的关联 . 多对多关联上是两个一对多关联 , 但是在 ManyToMany 描述中 , 中间表是由 ORM 框架自动处理
targetEntity: 表示多对多关联的另一个实体类的全名 , 例如 :package.Book.class
mappedBy: 表示多对多关联的另一个实体类的对应集合属性名称
示例 :
User 实体表示用户 ,Book 实体表示书籍 , 为了描述用户收藏的书籍 , 可以在 User 和 Book 之间建立 ManyToMany 关联
@Entity
public class User {
private List books;
@ManyToMany(targetEntity=package.Book.class)
public List getBooks() {
return books;
}
public void setBooks(List books) {
this.books=books;
}
}
@Entity
public class Book {
private List users;
@ManyToMany(targetEntity=package.Users.class, mappedBy="books")
public List getUsers() {
return users;
}
public void setUsers(List users) {
this.users=users;
}
}
两个实体间相互关联的属性必须标记为 @ManyToMany, 并相互指定 targetEntity 属性 ,
需要注意的是 , 有且只有一个实体的 @ManyToMany 注解需要指定 mappedBy 属性
13、@TransactionAttribute
事务管理服务
最有用的容器服务可能就是事务管理服务,当应用出现失败或异常时,它保证了数据库的完整性。你可以简单地将为一个 POJO 方法申明它的事务属性。这样容器就可以在合适的上下文中运行这个方法。最常见的事务是定义在 session bean 的方法上,方法中所有的数据库操作只有在方法正常退出时才会提交,如果方法抛出未捕获的异常,事务管理将回滚所有的变更。
14、@PersistenceContextType
当Play发现javax.persistence.Entity时, 会自动启动Hibernate entity manager
JPA entity manager is started you can get it from the application cod
Query query = JPA.em().createQuery("select * from Article");
List<Article> articles = query.getResultList();
render(articles);
事务管理。
Play will automatically manage transactions for you. It will start a transaction for each HTTP request and commit it when the HTTP response is sent. If your code throws an exception, the transaction will automatically rollback.
If you need to force transaction rollback from the application code, you can use the JPA.setRollbackOnly() method.
Find by ID
The simplest way to find an object.
Post aPost = Post.findById(5L);
Find all
List<Post> posts = Post.findAll();
This is the simplest way to retrieve all posts, but you can do the same using:
List<Post> posts = Post.all().fetch();
This allows you to paginate results:
List<Post> posts = Post.all().fetch(100); // 100 max posts
or even,
List<Post> posts = Post.all().from(50).fetch(100); // 100 max posts start at
#{if licData.daysBeforeExpired<=180 && licData.daysBeforeExpired>0}
<div class="common-note wornning" style="margin-top:13px;margin-bottom:16px;">
<p>
#{if licData.daysBeforeExpired>1}
&{'license.page.free.expiring',licData.daysBeforeExpired}
#{/if}
#{if licData.daysBeforeExpired<=1}
&{'license.page.free.expiring.1day',licData.daysBeforeExpired}
#{/if}
</p>
</div>
#{/if}
Query query = JPA.em().createQuery("select * from Article");
List<Article> articles = query.getResultList();
render(articles);
List<Post> posts = Post.all().from(50).fetch(100); // 100 max posts start at 50
Play应用开发者一开始可能经常会犯的错误是使用Hibernate的@Entity注解来取代JPA。这里请读者注意,Play是直接调用JPA的API来使用Hibernate。
EntityManager em = JPA.em();
em.persist(product);
em.createQuery("from Product where price > 50").getResultList();
Tomcat 多个APP共享数据库连接池
//looking up for the data source name registered in JNDI through Tomcat server.xml and context.xml files
DataSource ds = (DataSource) ctx.lookup(dsName);
//找到驱动程序并注册
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
//取得数据源
ds = (DataSource) envContext.lookup("jdbc/jlndb");
//以下为另一种取得数据源的方式
//ds = (DataSource) initContext.lookup("java:comp/env/jdbc/jlndb");
//取得数据库连接
发表评论
-
Java中的路径问题
2014-12-26 15:51 5171. 得到当前工作路径 String workingDir ... -
优化Java虚拟机(大全+实例)
2014-11-27 10:34 415http://www.open-open.com/lib/vi ... -
页面多次提交
2014-11-15 05:03 345一点拙见,仅供参考: ... -
Java类的加载机制
2014-11-14 20:34 807一. Java类加载机制 Java程序运行的场所是内存,当在 ... -
Java内部匿名类
2014-10-17 20:54 672http://www.cnblogs.com/nerxious ... -
JAVA中关于链表的操作和基本算法
2014-10-17 09:29 1704import java.util.HashMap; ... -
Java 面试题1
2014-10-17 07:08 9291、 多态就是指不同类的对象对同一消息做出的相应. 2、Str ... -
数据结构
2014-10-02 13:02 5061. Vector Vector v = new Vecto ... -
线程与异常
2014-10-02 12:52 5361. NumberFormatException 2. IOE ... -
包,接口
2014-10-02 12:46 3891. 没有访问控制符,对同一包中的类可见 2. private ... -
数组的初始化
2014-09-25 21:18 5891. 使用new创建数组对象时,其所有元素都被自动地初始化,数 ... -
Java NIO
2014-07-31 13:45 688Server Side import java.io.I ... -
匿名构造方法 与 ShutDownHook
2014-07-30 13:24 736匿名构造方法,在任何构造方法之前被调用。这样保证我们初始化Bu ... -
java remote debug
2013-06-20 20:44 2606As we can see from the previou ... -
DateUtil.java
2012-09-18 16:51 3710package cn.wsria.util.date; ... -
java.util.Properties类的使用
2012-09-01 15:03 1029import java.util.*; ... -
Java 中遍历 Session or Request
2011-07-01 09:42 7181java.util.Enumeration e = ... -
Eclipse 中 使用外部jar 来调试java application
2011-06-22 10:25 21471. write a java application 2 ... -
认识Thread的start和run
2011-06-20 16:48 629认识Thread的start和run 1) start: ... -
转载: Java Thread and Runable
2011-06-20 16:33 2781在java中可有两种方式实现多线程,一种是继承Thread类, ...
相关推荐
在标题"playFramework1.2.3"中,我们关注的是Play Framework的1.2.3版本。这个版本是在其早期发展的一个稳定版本,提供了许多开发者友好的功能。 Play Framework的核心优势在于它采用了模型-视图-控制器(MVC)架构...
Play Framework 是一个基于Java和Scala的高性能Web应用框架,它提供了快速开发、可测试和敏捷迭代的能力。在Play Framework中,安全模块是一个重要的组件,它帮助开发者实现基本的认证(Authentication)和授权...
在Play项目中,这些组件通常通过注解和路由配置来组织和定义。 描述中提到的"play 1.X"指的是Play Framework的第一个主要版本系列。这个版本在当时引入了许多创新特性,比如使用Ebean作为默认的ORM(对象关系映射)...
《Play Framework 框架手册》是一份深入介绍Play框架的文档,主要涵盖了从基础概念到高级特性的全面内容,适合初学者和经验丰富的开发者参考。以下是对手册中部分核心知识点的详细阐述: 1. **MVC应用程序模型**:...
Play Framework 是一个基于Java和Scala的开源Web应用框架,它以简洁、快速和类型安全而闻名。在"学生信息管理系统"这个项目中,我们可以看到它被用来构建一个用于管理学生数据的应用。JavaEE(Java Platform, ...
Play Framework的验证机制允许开发者在多个层次上对数据进行验证,确保应用程序的数据质量和安全性。它可以轻松地集成到控制器和模型中,提供了丰富的验证规则和自定义验证的能力,使得开发更加高效且可控。通过这些...
本文将深入探讨在Play Framework中JPA注解的使用。 1. **@Entity(name="EntityName")**:这个注解是必不可少的,用于声明一个Java类为一个实体,对应数据库中的一个表。`name`参数是可选的,当实体类名与数据库表名...
Play Framework是一款基于Java和Scala的开源Web应用框架,它遵循模型-视图-控制器(MVC)架构模式,旨在提供高效、简洁且快乐的开发体验。在深入阅读Play Framework的源代码之前,我们需要先理解其核心特性与工作...
Play Framework支持使用Java或Scala的注解,例如`@Api`、`@ApiOperation`、`@ApiParam`等,这些注解告诉Swagger如何解释你的控制器和方法。 接下来,配置Swagger。在你的应用程序配置文件(如`application.conf`)...
《PlayBasics:深入探索Play Framework 2.x的实践指南》 在当今的Web开发领域,Play Framework 2.x以其高效、灵活和易用性,成为Scala和Java开发者青睐的框架之一。本教程系列——"PlayBasics",旨在帮助初学者及有...
Play Framework 是一个强大的、现代的、轻量级的Web应用框架,它以Java和Scala为主导,但同样支持Kotlin。Kotlin是一种流行的、类型安全的、面向对象的编程语言,它具有简洁的语法和丰富的函数式编程特性,非常适合...
框架id(framework ID) - 141 - 从命令行设置框架id - 142 - 22.生产部署 - 142 - application.conf - 142 - 设置框架为prod模式: - 142 - 定义一个真实的数据库: - 143 - 禁止JPA的自动结构更新: - 143 - 定义一...
托管应用程序运行时 - Play Framework 2.3 完整部署示例 这是一个完整的 Play Framework 服务器部署示例,使用 Activator 生成的 Qt 云服务示例应用程序 - 托管应用程序运行时(“ MAR ”)。 更多关于信息。 入门 ...
$ cd <repos>/playframework_temp/ $ <activator>/activator-dist-1.3.5/activator run 它应该编译必要的文件,然后在启动本地服务器。 依存关系 前端:矩形的。 后端:使用Java APIWeb应用程序的。 最终:用于...
在Java开发领域,Play Framework是一个流行、现代且灵活的Web应用框架,它鼓励快速开发并提供了丰富的功能。本示例着重讲解如何在Play Framework中使用Java Forms,这是一种处理HTTP请求数据的有效方式。 一、Play ...
你可以创建自定义策略类,继承自 `play.modules.securesocial.core.providers.utils.RoutesHelper`,并在控制器中使用 `@With` 注解来限制某些动作仅对特定角色可用。 7. **扩展和定制** SecureSocial 的设计是可...
Play Framework 是一个开源的Web应用框架,主要使用Java和Scala语言开发,基于MVC(Model-View-Controller)设计模式。这个框架强调简洁、反应式和模块化开发,旨在提高开发者的生产力,使得构建高性能、易测试且可...
【标题】"play-java-ebean-example.zip_front8l3_java_play" 指示这是一个关于使用Java和Ebean库在Play Framework中构建示例应用的压缩包。Play Framework是一个流行的开源Web应用程序框架,它采用模型-视图-控制器...
【描述】"Play java dagger2 example" 暗示这个项目是一个用Java编写的,使用了Play Framework的Web应用程序,同时整合了Dagger 2来实现依赖注入。Play Framework是一个轻量级、基于MVC模式的Web开发框架,它强调...
这个项目是用Play Framework构建的,这是一个非常流行的开源Web应用框架,它采用Scala和Java语言,提供了快速开发、模块化和测试友好等特性。在本文中,我们将深入探讨Play Framework的基本概念,以及如何在...