一、对java实体类的理解

A .就是属性类,通常定义在model层里面 

B. 一般的实体类对应一个数据表,其中的属性对应数据表中的字段。
      好处: 

  • 对对象实体的封装,体现OO思想。
  • 属性可以对字段定义和状态进行判断和过滤
  • 把相关信息用一个实体类封装后,我们在程序中可以把实体类作为参数传递,更加方便。

C. 说白了就是为了让程序员在对数据库操作的时候不用写SQL语句 

D. 就是一个数据库表生成一个类
     这样做对数据库操作起来方便
     编写代码较少 提高效率 可以使程序员专注逻辑关系 

E. 实体类就是把对某一个表的操作全写在一个类中.

F. 在Java开发中经常要定义一些实体类,这些类的定义的好坏会直接影响,编写代码的质量和难易程度

二、Java中entity(实体类)的写法规范

在日常的Java项目开发中,entity(实体类)是必不可少的,它们一般都有很多的属性,并有相应的setter和getter方法。entity(实体类)的作用一般是和数据表做映射。所以快速写出规范的entity(实体类)是java开发中一项必不可少的技能。

  在项目中写实体类一般遵循下面的规范:

    1、根据你的设计,定义一组你需要的私有属性。

    2、根据这些属性,创建它们的setter和getter方法。(eclipse等集成开发软件可以自动生成。具体怎么生成?请自行百度。)

    3、提供带参数的构造器和无参数的构造器。

    4、重写父类中的eauals()方法和hashcode()方法。(如果需要涉及到两个对象之间的比较,这两个功能很重要。)

    5、实现序列化并赋予其一个版本号。

下面是一个实体类(entity)例子:具体的细节都用注释标注了。

复制代码
 1 class Student implements Serializable{
 2     /**
 3      * 版本号
 4      */
 5     private static final long serialVersionUID = 1L;
 6     //定义的私有属性
 7     private int id;
 8     private String name;
 9     private int age;
10     private double score;
11     //无参数的构造器
12     public Student(){
13         
14     }
15     //有参数的构造器
16     public Student(int id,String name,int age, double score){
17         this.id = id;
18         this.name = name;
19         this.age = age;
20         this.score = score;
21     }
22     //创建的setter和getter方法
23     public int getId() {
24         return id;
25     }
26     public void setId(int id) {
27         this.id = id;
28     }
29     public String getName() {
30         return name;
31     }
32     public void setName(String name) {
33         this.name = name;
34     }
35     public int getAge() {
36         return age;
37     }
38     public void setAge(int age) {
39         this.age = age;
40     }
41     public double getScore() {
42         return score;
43     }
44     public void setScore(double score) {
45         this.score = score;
46     }
47     //由于id对于学生这个类是唯一可以标识的,所以重写了父类中的id的hashCode()和equals()方法。
48     @Override
49     public int hashCode() {
50         final int prime = 31;
51         int result = 1;
52         result = prime * result + id;
53         return result;
54     }
55     @Override
56     public boolean equals(Object obj) {
57         if (this == obj)
58             return true;
59         if (obj == null)
60             return false;
61         if (getClass() != obj.getClass())
62             return false;
63         Student other = (Student) obj;
64         if (id != other.id)
65             return false;
66         return true;
67     }
68     
69 }
复制代码

一个学生的Java实体类就基本完成了。

总结:实体是就是Java中的O/R Mapping映射,即数据库中的一个表映射成对应的一个Java类,其中还有一个映射文件。给定一个较复杂的实体关系(如一对一,一对多,多对多),应该熟练地写出实体类

posted on 2019-06-21 20:59  有两个小名的细细  阅读(311)  评论(0编辑  收藏  举报