一、java实体类entity

实体类场景:比如mvc设计中model层定义java实体

对java实体类的众多理解:

A. 通常定义在model层里面 

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

好处:

1、对象实体(其实是数据表)的封装,体现OO思想。

2、属性可以对字段定义和状态进行判断和过滤

3、把相关信息用一个实体类封装后,我们在程序中可以把实体类作为参数传递,更加方便。

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

D. 就是一个数据库表生成一个类

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

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

1、实体类的名字尽量和数据库的表的名字对应相同。

2、实体类应该实现java.io.Serializable接口。

3、实体类应该有个无参的构造方法。

4、实体类应该有个有参(所有的参数)的构造方法。

5、实体类有属性和方法,属性对应数据库中表的字段,主要有getter和setter方法。

6、实体类还应该有个属性serialVersionUID。例如:private static final long serialVersionUID = -6125297654796395674L;

7、属性一般是private类型,方法为public类型,对于数据库自动生成的ID字段对应的属性的set方法应为private。

G. 实体类中都是实例对象,实例对象在jvm的堆区中开辟了一个该对象引用空间,并且让该引用指向某个实例,类声明只是在jvm的栈去中开辟了一个该对象引用,没有让该引用做任何指向.

例如 :

1.String str;

2.String str = new String ("dgfgg");

1中的只是一个引用,说明str应该指向一个String 类型的实例,但还没对str和堆区的实例做具体的指向.也就是说它还没有指向某个实例.

而2中的即定义了一个引用(str)又对str做了具体的指向,它指向的内容就是后面new出来的String 实例.

H. 实体类中的方法包括:构造方法 set方法 get方法

构造方法:初始化成员变量

get,set方法,获取和改变成员变量的值,JavaBean规范规定只使用get/set访问成员变量

构造方法:你每次写一个Java文件,实际上都写了一个类(创建一个类,jvm就会自动为这个类开辟一块内存空间)。有了类就需要有类对象,要产生类对象就需要构造函数对这个刚刚申请的内存空间做一点事,赋属性值之类的工作。当然,如果你不写,它就默认有一个Class(){}的构造方法出现,当然它什么活也不干。

你的属性是什么样的?public?private?默认?还是protected?这四种你找教材务必弄懂分清,很有用。如果是private,这种属性不许别的对象改和读,但有时候需要改/读,怎么办?写一个public void setAbc(xxx){}和一个public xxx getAbc(){}就实现外部读写属性的功能了。

set ,get完全是自我规定的,就是设置初值和获得值的意思.你也可以修改成其他字符.但是用set ,get还是要好些,因为你能通过单词理解你写的代码的意思,方便阅读而已。

二、javabean

为什么叫bean?没特别原因,就是随意定义的

当初在开发JAVA语言的时候,就是不知道该取什么名字。

后来,在程序员中,他们经常喝一种咖啡, 叫“爪洼”(音译),就取名为JAVA。

这种咖啡,是用“爪洼豆”磨出来的。所以,他们给用“豆”来命名。就是BEAN。

如果你问java程序员到底什么是bean,很多人都会回答,javabean实际上就是一个实体类,只不过javabean是一种规范。

三、java中mvc模式中model与entity(实体类)的区别

model的字段>entity的字段,并且model的字段属性可以与entity不一致,model是用于前端页面数据展示的,而entity则是与数据库进行交互做存储用途。

举个例子:

比如在存储时间的类型时,数据库中存的是datetime类型,entity获取时的类型是Date()类型,date型的数据在前端展示的时候必须进行类型转换(转为String类型),在前端的进行类型转换则十分的麻烦,转换成功了代码也显得十分的臃肿,

所以将entity类型转换后,存储到对应的model中,在后台做类型转换,然后将model传到前端显示时,前端的就十分的干净。同时也可以添加字段,作为数据中转。