持久化实体

一、实验介绍

1.1 实验内容

本节课程主要根据第三节的数据库设计完成持久化实体映射设计,并完成持久化实体类的创建。

1.2 实验知识点

  • 持久化实体
  • Domain Object 层

1.3 实验环境

  • JDK1.8
  • Eclipse JavaEE

二、实验步骤

打开 Eclipse,找到我们之前建立的项目 hrms,开始我们的实验。

在项目 hrmsJava Resources 目录的 src/main/java 下新建包 com.shiyanlou.domain,作为 Domain Object 层的包。

接下来,根据第三节数据库的设计创建实体类。

2.1 Admin 类(管理员)

src/main/java 目录下的 com.shiyanlou.domain 包中新建实体类 Admin,作为管理员表 的映射。

package com.shiyanlou.domain;

import java.io.Serializable;

public class Admin implements Serializable {

    private static final long serialVersionUID = 1L;

    private Integer id;  // 管理员编号
    private String username;  // 用户名
    private String password;  // 密码
    private String role_name;   // 管理员角色

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getRole_name() {
        return role_name;
    }

    public void setRole_name(String role_name) {
        this.role_name = role_name;
    }

    @Override
    public String toString() {
        return "Admin:[id=" + id + ",username=" + username + ",password="
                + password + ",role_name=" + role_name + "]";
    }
}

2.2 Post 类(公告)

src/main/java 目录下的 com.shiyanlou.domain 包中新建实体类 Post,作为公告表 的映射。

package com.shiyanlou.domain;

import java.io.Serializable;
import java.util.Date;

public class Post implements Serializable {

    private static final long serialVersionUID = 1L;

    private Integer id;  // 公告编号
    private String title;  // 标题
    private String content;  // 内容
    private Admin admin;  // 发布人
    private Date date;  // 发布日期

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public Admin getAdmin() {
        return admin;
    }

    public void setAdmin(Admin admin) {
        this.admin = admin;
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    @Override
    public String toString() {
        return "Post:[id=" + id + ",title=" + title + ",content=" + content
                + ",admin=" + admin + ",date=" + date + "]";
    }
}

2.3 Department 类(部门)

src/main/java 目录下的 com.shiyanlou.domain 包中新建实体类 Department,作为部门表 的映射。

package com.shiyanlou.domain;

import java.io.Serializable;

public class Department implements Serializable {

    private static final long serialVersionUID = 1L;

    private Integer id;  // 部门编号
    private String name;  // 名称
    private String description;  // 描述 

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    @Override
    public String toString() {
        return "Department:[id=" + id + ",name=" + name + ",description="
                + description + "]";
    }
}

2.4 Position 类(职位)

src/main/java 目录下的 com.shiyanlou.domain 包中新建实体类 Position,作为职位表 的映射。

package com.shiyanlou.domain;

import java.io.Serializable;

public class Position implements Serializable {

    private static final long serialVersionUID = 1L;

    private Integer id;  // 职位编号
    private String name;  // 名称
    private String description;  // 描述

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    @Override
    public String toString() {
        return "Position:[id=" + id + ",name=" + name + ",description="
                + description + "]";
    }
}

2.5 Employee 类(员工)

src/main/java 目录下的 com.shiyanlou.domain 包中新建实体类 Employee,作为员工表 的映射。

package com.shiyanlou.domain;

import java.io.Serializable;
import java.util.Date;

public class Employee implements Serializable {

    private static final long serialVersionUID = 1L;

    private String id;  // 员工编号
    private String name;  // 姓名
    private String sex;  // 性别
    private String phone;  // 电话
    private String email;  // 邮箱
    private String address;  // 地址
    private String education;  // 学历
    private Date birthday;  // 生日
    private Department department;  // 部门
    private Position position;  // 职位

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getEducation() {
        return education;
    }

    public void setEducation(String education) {
        this.education = education;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public Department getDepartment() {
        return department;
    }

    public void setDepartment(Department department) {
        this.department = department;
    }

    public Position getPosition() {
        return position;
    }

    public void setPosition(Position position) {
        this.position = position;
    }

    @Override
    public String toString() {
        return "Employee:[id=" + id + ",name=" + name + ",sex=" + sex
                + ",phone=" + phone + ",email=" + email + ",address=" + address
                + ",education=" + education + ",birthday=" + birthday
                + ",department=" + department + ",position=" + position + "]";
    }

}

三、实验总结

到这里我们就完成了 Domain Object 层实体类的设计实现,下一节我们将进入 DAO 层的实现。

时间: 2024-11-01 02:58:32

持久化实体的相关文章

Eos持久化实体

持久化实体 2009-11-30 20:53:38|  分类: 记事本_学习笔记 |  标签: |举报 |字号大中小 订阅 在EOS的实体定义中,如果使用了关联实体方式,主实体的外键属性是不存在,且不可访问的. 例如上面的例子:ooperator/orgId这个属性是不存在的,必须通过ooperator/oOrg/orgId才能访问操作员所在的机构的编号. 这个方式和我们常用的数据库的访问方式完全不同,这是因为我们建立的业务域对象模型,在OOperator这个对象中只有OOrg这个对象,orgI

JPA实体继承的映射

注:文章中据说的实体指的是被@Entity注解的类. JPA中对象关系映射通常情况下是一个实体对应一个表,两个实体之间没有任何关系.如果两个实体之间是继承关系,那么该如何映射呢? JPA中的实体支持继承映射,多态关联,多态查询.抽象类和具体的类都可以是实体,且都可以使用@Entity来注解,映射成实体,并查询封装成一个实体.实体类可以继承非实体类,非实体类也可以继承实体类. JPA的继承映射有如下几种情况: 一.实体类继承抽象(具体)实体类 抽象类可以指定成为一个实体,抽象实体和具体实体的唯一区

持久化和对象关系映射

持久化:持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘文件.XML文件等).持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中.XML数据文件中等等. 持久层:主要实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联. 对象数据映射(ORM):Object/Relational Mapper,即“对象-关系型数据映射组件”.对于O/R,即 Object(对象)和 Relational(关系

Hibernate持久化对象

持久化类应遵循的规则: 有无参构造器,构造器的修饰符>=默认访问控制符 有标识属性,映射数据库表的主键,建议使用基本类型的包装类 每个成员有setter和getter 非final修饰的类 重写equals()和hashCode()方法(当需要把持久化类的属性放进Set中时) 持久化类的状态: 改变持久化对象状态的方法: 持久化实体: Serializable save(Object obj)   保存到数据库 void persist(Object obj) Serializable save

《精通Hibernate:Java对象持久化技术详解》目录

图书信息:孙卫琴 电子工业出版社 第1章 Java应用分层架构及软件模型: 1.1 应用程序的分层体系结构 1.1.1 区分物理层和逻辑层 1.1.2 软件层的特征 1.1.3 软件分层的优点 1.1.4 软件分层的缺点 1.1.5 Java应用的持久化层 1.2 软件的模型 1.2.1 概念模型 1.2.2 关系数据模型 1.2.3 域模型 1.2.4 域对象 1.2.5 域对象之间的关系 1.2.6 域对象的持久化概念 1.3 小结 1.4 思考题第2章 Java对象持久化技术概述: 2.1

持久化API(JPA)系列(四)管理器EntityManager--执行数据库更新

EntityManager是应用访问持久化上下文中的实体的接口,用来对实体Bean进行操作.我们可以使用它来创建.删除.修改持久化的实体,以体现到数据库中:也可以从数据库中查询得到实体或实体列表.所有的这些操作都是通过实体管理器进行的. 本文将首先讲解EntityManager对象的引用方式,然后讲解使用EntityManager的操作函数实现数据库的各种操作,包括以下内容. 持久化实体persist():往数据表中插入数据. 删除实体remove():从数据表中删除记录. 更新实体merge(

hibernate 深入理解持久化对象

hibernate 完全采用面向对象的方式来操作数据库,因此开发者眼里只有对象.属性,无须理会数据库.表.列等概念. 持久化类的要求 Hibernate 采用低侵入式设计,所以对持久化类的要求也是只要是简单的pojo即可. 虽然hibernate对持久化没什么要求,但应遵守如下规则: -提供一个无参的构造器,这样hibernate就可以使用Constructor.newInstance()来创建持久化实例了. -提供 一个标识属性,通常是映射数据库的主键字段 -对象的属性应尽量避免使用最基本的类

实体Bean

持久化实体管理EntityManager EntityManager 在Java persistence规范中,EntityManager是为所有持久化操作提供服务的中枢.Persistence context 持久上下文是由一组受托管的实体对象实例所构成的集合,它受EntityManager的管理. 实体的状态新建状态:新建的实体对象,尚未拥有持久化主键,没有和一个持久化上下文关联起来.托管状态:已经拥有持久化主键并和持久化上下文建立了联系.游离状态:拥有持久化主键,但尚未和持久化上下文建立联

Hibernate持久化对象状态、转换方法和操作步骤

1  持久化对象三种状态 瞬态:对象由new操作符创建,且尚未与Hibernate Session关联的对象被认为处于瞬态.瞬态对象不会被持久化到数据库中,也不会被赋予持久化标识.如果程序中失去了瞬态对像的引用,瞬态对象将被垃圾回收机制销毁.使用Hibernate Session可以将其变为持久化状态. 持久化:持久化实例在数据库中有对应的记录,并拥有一个持久化标识(identifier).持久化的实例可以是刚刚保存的,也可以是刚被加载的.无论哪一种,持久化对象都必须与制定的Hibernate