`

在Java SE环境下使用JPA1.0(1)

    博客分类:
  • J2EE
阅读更多
一、搭建环境
1)   搭建数据库环境   1、安装数据库(MySQL 5.0.24), 用户: root,密码: (空) 。
   2、建库piscesdb。
   3、建表address:
drop table address;

create table address (
   addressID int not null,
   city varchar(55) not null,
   street varchar(55) NOT NULL,
   zip varchar(8) NOT NULL,
   PRIMARY KEY  (addressID)
);

insert into address values (1, "深圳", "坂田市场", "518001");
insert into address values (2, "深圳", "坂田路口", "518002");
insert into address values (3, "深圳", "四季花城", "518003");

4、建表userinfo:
droptable userinfo;

createtable userinfo (
   userID intnotnull,  /** 用户id  */
   username varchar(20) notnull, /** 姓名  */
   birthday datetimenull,   /**  出生日期  */
   sex varchar(8) notnull,   /** 性别 */
   addressID intnotnull,    /** 地址id  */
   PRIMARYKEY (userID)
);

insertinto userinfo values (1, "张金雄", null, "male", 1);
insertinto userinfo values (2, "李某某", null, "male", 2);
insertinto userinfo values (3, "王某某", '2006-08-10', "female", 3);
insertinto userinfo values (4, "陈某某", '2006-08-12', "male", 3);

2)   获取额外的jar包    下载JPA的实现类, 去https://glassfish.dev.java.net/downloads/persistence/JavaPersistence.html下载GlassFish v1 FCS branch版本,
进行安装后得到toplink-essentials.jar,toplink-essentials-agent.jar 两个包,将这两个包和mysql的驱动包加入到项目的classpath路径中去。

3)   开发环境  JDK:  jdk 6.0 beta2 (JDK 5.0 也可以)
   IDE:  NetBeans 5.0 中文版

二、开发1)   创建实体Entity类   1、地址类 Address :
/*
* Address.java
*/

package org.pisces.persist;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;

/**
*
* @author kamhung
*/
@Entity 
publicclass Address implements Serializable {
    //地址id, 不能为空, 必须唯一
    @Id 
    @Column(name ="addressid", unique=true, nullable=false)
    privateint addressid;
    
    //城市, 不能为空
    @Column(name ="city", nullable=false)
    private String city;
    
    //街道, 不能为空
    @Column(name ="street", nullable=false)
    private String street;
    
    //邮政编码, 不能为空
    @Column(name ="zip", nullable=false)
    private String zip;
    
    public Address() {
    }
    
    public Address(int addressid) {
        this.setAddressid(addressid);
    }
    
    publicint getAddressid() {
        returnthis.addressid;
    }
    
    publicvoid setAddressid(int addressid) {
        this.addressid = addressid;
    }
    
    public String getCity() {
        returnthis.city;
    }
    
    publicvoid setCity(String city) {
        this.city = city;
    }
    
    public String getStreet() {
        return street;
    }
    
    publicvoid setStreet(String street) {
        this.street = street;
    }
    
    public String getZip() {
        returnthis.zip;
    }
    
    publicvoid setZip(String zip) {
        this.zip = zip;
    }
    
    @Override
    publicint hashCode() {
        returnthis.addressid;
    }
    
    @Override
    publicboolean equals(Object object) {
        if (!(object instanceof Address)) returnfalse;
        final Address other = (Address)object;
        returnthis.addressid == other.addressid;
    }
    
    @Override
    public String toString() {
        return"Address[addressid="+ getAddressid() +", city='"+ getCity() +"', street='"+ getStreet() +"', zip='"+ getZip() +"";
    }
}
2、用户类 UserInfo: 
/*
* UserInfo2.java
*/

package org.pisces.persist;

import java.io.Serializable;
import java.sql.Timestamp;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
importstatic javax.persistence.CascadeType.*;

/**
*
* @author kamhung
*/
@Entity 
publicclass UserInfo implements Serializable {
    //用户id, 不能为空, 必须唯一
    @Id 
    @Column(name ="userid", unique=true, nullable=false)
    privateint userid;
    
    //用户名, 不能为空
    @Column(name ="userName", nullable=false)
    private String userName;
    
    //性别, 不能为空
    @Column(name ="sex", nullable=false)
    private String sex;
    
    //出生日期, 可以为空
    @Column(name ="birthday")
    private Timestamp birthday;
    
    //地址, 不能为空
    //PERSIST 表示更新、新增UserInfo数据时会同时更新、新增Address的数据
    //REMOVE 表示从数据库删除UserInfo会同时删除Address表中对应的数据
    @OneToOne(cascade={PERSIST, REMOVE})
    @JoinColumn(name ="addressID", nullable=false)
    private Address address;
    
    public UserInfo() {
    }
    
    public UserInfo(int userid) {
        this.setUserid(userid);
    }
    
    @Override
    publicint hashCode() {
        returnthis.getUserid();
    }
    
    @Override
    publicboolean equals(Object object) {
        if (!(object instanceof UserInfo)) returnfalse;
        final UserInfo other = (UserInfo)object;
        returnthis.userid == other.userid;
    }
    
    @Override
    public String toString() {
        return"UserInfo[userid="+this.userid +", userName='"+ userName +"', sex='"+ sex
                +"', birthday="+ birthday +", address="+ address +"";
    }
    
    publicint getUserid() {
        return userid;
    }
    
    publicvoid setUserid(int userid) {
        this.userid = userid;
    }
    
    public String getUserName() {
        return userName;
    }
    
    publicvoid setUserName(String userName) {
        this.userName = userName;
    }
    
    public Timestamp getBirthday() {
        return birthday;
    }
    
    publicvoid setBirthday(Timestamp birthday) {
        this.birthday = birthday;
    }
    
    public String getSex() {
        return sex;
    }
    
    publicvoid setSex(String sex) {
        this.sex = sex;
    }
    
    public Address getAddress() {
        return address;
    }
    
    publicvoid setAddress(Address address) {
        this.address = address;
    }
}
分享到:
评论

相关推荐

    jpa1.0中文手册

    JPA是一个Java社区规范(Java Community Process JSR 220),用于在Java EE和Java SE环境中管理对象和关系数据库之间的映射,以及管理数据库中的数据持久化操作。JPA为对象/关系映射(ORM)提供了标准化的方法,可以...

    JPA 标注 JPA标签手册

    它提供了一种对象关系映射方法,允许您以标准、可移植的方式声明性地定义如何将Java对象映射到关系数据库表,不仅在Java EE 5应用服务器内部,而且在Java标准版(Java SE)5应用程序外部都能工作。 在使用TopLink ...

    java_ee_sdk-8u1.zip

    3. **JSR 371 - MongoDB Java Driver for Java EE**:提供了在Java EE环境中与MongoDB数据库交互的标准API。 4. **JSR 374 - Java API for JSON Processing (JSON-P) 1.1** 和 **JSR 375 - Java API for JSON ...

    Java Persistence API 2.0-final-spec

    它是Java Enterprise Edition(Java EE)的一部分,同时也适用于Java Standard Edition(Java SE)环境。JPA 2.0是这个API的一个重要版本,引入了许多新特性和改进,旨在提供更强大的数据访问和管理能力。以下是对...

    Java EE 5 SDK

    - **Java Persistence API (JPA) 1.0**:替代了原先的Entity Beans,提供了更简单、灵活的ORM解决方案。 - **JavaServer Faces (JSF) 1.2**:增强的用户界面组件,改进了事件处理和渲染树。 - **Unified ...

    Java EE 7 Development with WildFly

    同时,本书还为开发者提供了从Java SE的安装到通过Eclipse环境开发Java EE 7应用程序的完整过程。 在本书中,读者会了解到Java EE 7的关键技术组件,比如: - JavaServer Faces (JSF) 2.2: 它是一种用于构建基于...

    Java EE 5.0 API文档(chm格式)

    这个版本的API是针对Java SE 5.0平台设计的,包含了诸如Servlet、JSP、EJB、JMS、JPA等关键组件的规范。 首先,Servlet是Java EE中的核心组件,用于处理HTTP请求。在Java EE 5.0中,Servlet 2.5规范引入了改进的...

    java 发展史

    1996年,Sun成立了JavaSoft部门,专注于Java技术产品的开发和支持,发布了JDK 1.0,包含了运行环境JRE和开发环境JDK,包括核心API、集成API等。但那时的库并不完善,尤其是AWT库。 1997年,JDK 1.1发布,引入了JIT...

    Java帮助文档-

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。这些帮助文档集合提供了从基础到高级的Java及相关技术的详尽指南,包括J2EE、Java API 1.7、JDK 1.8、JSTL等关键组件。以下是这些文档中...

    QCon 2009 beijing全球企业开发大会ppt:10.Java在企业级开发中的应用

    在Web 2.0的热点背景下,毛新生讨论了WebSphere如何支持脚本语言和敏捷特性,这使得Java平台能够更好地适应快速变化的市场需求。通过引入RESTful服务、脚本语言支持,IBM的平台增强了灵活性和响应速度。 3. **支持...

    java api文档 1.6中文版 1.7 1.8中文版 javaee1.5

    - **JPA (Java Persistence API) 1.0**:统一的持久化框架,支持ORM(对象关系映射)。 - **JSF (JavaServer Faces) 1.2**:Web用户界面组件模型,提供了声明式UI绑定和事件处理。 这些API文档详细介绍了每个类、...

    jre1.6安装版(含32位和64位)

    Java Runtime Environment(JRE)是Java程序运行所需的基础环境,它包含了Java虚拟机(Java ...不过,由于其年代久远,可能不支持最新的安全更新和特性,因此,在安全性要求较高的场景下,建议使用更新的Java版本。

    java常用知识 可以看看

    - **安全性**:Java具有内置的安全机制,能够有效防止恶意代码的执行,适合网络环境下的应用开发。 - **面向对象**:Java是一种完全的面向对象编程语言,支持封装、继承和多态等OOP特性,易于维护和扩展。 ### ...

    Open JDK有3种实现的compact JRE,数字越大,功能越丰富.docx

    Java SE包含了基础类库和运行时环境,是大多数开发者安装部署Java环境的基础。 3. **Java Enterprise Edition (Java EE)**:面向企业级应用的加强版,包括了一系列技术,如JDBC、EJB、Servlet、RMI、JNDI、JMS、JPA...

    Java EE 6 Overview 新特性

    - **EJB 3.1 Lite**:Java EE 6 中的EJB 3.1 版本进一步简化了企业级组件的开发过程,特别是通过EJB 3.1 Lite 在Web Profile 中的出现,使得开发者能够在不牺牲性能的情况下轻松地集成业务逻辑。 - **Servlet 3.0**...

    编程语言发展史:Java语言的出现和发展

    + 现代化发展(2011年-至今):发布第七个标准版(Java SE 7)、第八个标准版(Java SE 8) 三、Java语言的特点和优势 * 跨平台性:Java语言的编译器将源代码编译成字节码,可以在任何支持Java虚拟机(JVM)的...

    Java EE 6 标准与规范(中文版)

    - **Applet**:尽管不是主流,但在某些场景下仍被使用。 - **客户端应用程序**:包括Swing/AWT等GUI应用。 **1.4 容器** - **Web 容器**:负责托管Servlets、JSP页面等Web组件。 - **EJB 容器**:管理EJB组件的...

    J2EE_5_Libraries

    Java Enterprise Edition (Java EE) 是一个用于开发企业级应用程序的平台,它基于Java Standard Edition (Java SE),并提供了额外的功能和服务,以支持分布式、多层的应用程序。Java EE 5是这个平台的一个重要版本,...

    Addison.Wesley.The.Java.EE.6.Tutorial.Basic.Concepts.4th.Edition.Aug.2010

    1. **Java EE概述**:介绍Java EE 6平台的基本架构和设计理念,包括它如何提供服务以支持Web应用程序的开发,以及与Java SE(标准版)的关系。 2. **Web组件**:讲解Servlet和JSP(JavaServer Pages)的基础知识,...

    J2EE API帮助文档

    - **轻量级EJB**: EJB 3.0的Session Beans和Message-Driven Beans不再需要EJB容器,可以直接运行在普通的Java SE环境中。 - **Web服务增强**: 支持WS-I Basic Profile 1.1,增强了Web服务的互操作性,并引入了WS-...

Global site tag (gtag.js) - Google Analytics