java 实体类entity,model模型,javabean的理解以及使用场景

一、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传到前端显示时,前端的就十分的干净。同时也可以添加字段,作为数据中转。

 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,为了正确映射PostgreSQL数据库中的jsonb字段,Java实体类应该按照以下方式进行定义: ```java @Data @NoArgsConstructor @AllArgsConstructor @Entity @Table(name = "customer_profile") @TypeDefs({ @TypeDef(name = "string-array", typeClass = StringArrayType.class), @TypeDef(name = "int-array", typeClass = IntArrayType.class), @TypeDef(name = "json", typeClass = JsonStringType.class), @TypeDef(name = "jsonb", typeClass = JsonBinaryType.class) }) public class CustomerProfile implements Serializable { @Id @GeneratedValue(strategy = SEQUENCE) private Integer id; @Column(length = 32, nullable = false) private String name; @Type(type = "jsonb") @Column(columnDefinition = "jsonb") private CustomerThemeSetting settings; @Type(type = "string-array") @Column(columnDefinition = "text\[\]") private String\[\] phones; } class CustomerThemeSetting { // ... some instance field. } ``` 在实体类中,使用`@Type`注解来指定字段的类型,例如`@Type(type = "jsonb")`表示该字段是jsonb类型。同时,使用`@Column(columnDefinition = "jsonb")`来指定数据库中的列定义。另外,还需要在实体类使用`@TypeDefs`注解来定义自定义类型的映射关系。 此外,为了正确使用Hibernate与PostgreSQL的jsonb数据类型,需要在项目的Maven依赖中添加`hibernate-types-52`的依赖项。具体的依赖配置可以参考引用\[2\]中提供的代码段。 希望这个回答能够解决你的问题。 #### 引用[.reference_title] - *1* *2* *3* [Hibernate jsonb Java Object Type Java实体类中的字段怎么写才能正确映射?](https://blog.csdn.net/wuyujin1997/article/details/120981261)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值