快速业务通道

在Visual Web应用程序中使用Java Persistence API - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
以便让数据库自动生成主键字段(用户 id 字段)。JPA 使用 @Id 注释标识主键。向主键添加第二个注释,指示生成主键值的策略 :@GeneratedValue(strategy=GenerationType.<...>),其中策略子句是可选的。 注意,选择的生成策略必须与数据库的性能相关联。

使用 Derby 数据库生成主键值

因为 Derby 数据库支持 IDENTITY 列类型,因此可以为主键生成一个惟一值,这个任 务可以由数据库来完成。因此,向主键定义中添加以下代码行:@GeneratedValue (strategy = GenerationType.IDENTITY).

进行修改之后,定义表的 Users.java 代码应该如下所示:

代码示例 1:经过修改的 Users.java 类

public class Users implements Serializable {  @Column(name = "USERNAME")  private String username;  @Column(name = "PASSWORD")  private String password;  @Column(name = "EMAIL_ADDRESS")  private String emailAddress;  @Id  @GeneratedValue(strategy = GenerationType.IDENTITY)  @Column(name = "USER_ID", nullable = false)  private Integer userId;  ...使用 Fix Imports 功能

注意 @GeneratedValue 标记需要两个类:javax.persistence.GeneratedValue 和 javax.persistence.GenerationType。使用 Fix Imports 函数导入这些类。右键单击源 代码编辑窗口的任何地方,并从弹出菜单选择 Fix Imports。Fix Imports 函数将这两个 导入语句添加到类:

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

正如上面提到的,其他数据库可能需要对 Users.java 代码进行不同的修改,或者根 本不作修改。例如,对于 MySQL 数据库,不需要包含 @GeneratedValue 注释,因为如果 在创建表定义时为 user_id 列指定了 auto_increment,数据库会自动生成主键值。

创建类

创建实体控制器类

继续在 TestModelApp 项目中操作,在 com.samples.model 包中创建一个叫做 UserController 的新类。(我们将在下面提供此类的代码,可以将它粘贴到您的类中) 。

展开 TestModelApp > Source Packages > com.samples.model 节点。注意包 中已经有两个类:Main.java 和 Users.java。右键单击 com.samples.model 节点并选择 New > Java Class 选项。在 New Java Class 对话框中,将类名称设置为 UserController(将其位置保留为 Source Packages 并将包名称保留为 com.samples.model)。

在Visual Web应用程序中使用Java Persistence API - 编程入门网

图 15: 创建 UserController 类

在Visual Web应用程序中使用Java Persistence API(8)

时间:2011-03-26 Beth Stearns

在 Edit 窗口中应该可以看见源代码框架。向类添加如下代码:

代码示例 2:UserController 代码

private EntityManagerFactory emf; private EntityManager getEntityManager() { if(emf == null){   emf = Persistence.createEntityManagerFactory("samplePU"); }   return emf.createEntityManager(); } public Users[] getUsers() {   EntityManager em = getEntityManager();   try{     javax.persistence.Query q = em.createQuery("select c from Users as c");     return (Users[]) q.getResultList().toArray(new Users[0]);   } finally {     em.close();   } }

使用 Fix Imports 函数导入需要的类。(在源代码编辑窗口中右键单击,从弹出菜单 选择 Fix Imports 选项)。这样可以将以下 3 个导入语句添加到类中:

import javax.persistence.EntityManager;

import javax.persistence.EntityManagerFactory;

import javax.persistence.Persistence;

可以使用 Format 函数

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号