博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java中基本数据类型和包装数据类型在Hibernate中使用
阅读量:5956 次
发布时间:2019-06-19

本文共 904 字,大约阅读时间需要 3 分钟。

Java开发通常我们在对实体类与数据库做映射的时候,会发现存在两种数据类型

一种基本数据类型:byte、short、char、int、long、float、double和boolean

另外一种是包装数据类型:Bety 、Short、 Character、 Integer 、Long、 Float、Double和Boolean

当然基本数据类型和包装数据类型之间可以方便的转换,也就是Java中所谓的装箱,例如:

Integer a = 10 ;  //这是自动装箱

int b = new Integer(10) ;  //这是自动拆箱

这里主要是讨论在持久化类中,如何定义属性的数据类型。这里主要以int和Integer为类说明:

如基本类型将无法表达null值,所有的基本数据类型的默认值都不是null,int 定义的属性a ,它的默认值就是0,这样一来如果这个属性没有赋值,它在数据库中的表现形式就是0,如果这个属性为age表示年龄,那么0就表示其未知。而且在某些情况下0表示特殊的含义,比如状态属性status=1 or 0,此时如果默认值为0就可能会存在歧义,本身它没有被赋值,就应该显示null才比较合理。

对于此情况,我们应该在持久化类也就是实体类中将数据类型都定义为包装类型,这样持久化到数据库中之后默认值就都是null,而非0。。。

关于基本数据类型和包装数据类型的优点和缺点:

1、对于基本数据类型来说,使用方便,可以直接把它显示到用户UI上,而且对于数字类型,可以直接进行运算;而对于包装数据类型来说,使用起来比较麻烦,特别是数字类型,在进行运算时,必须先转换成基本类型才行。

备注:在JDK1.5中,数字类型的包装类型也可以直接进行运算了,不用进行类型转换了,大大简化了包装类型。同时也说明,使用包装较为优先了。

2、基本类型的缺陷就是无法表示null值,也就是空值,而且所有的基本数据类型的默认值都不是null,所以从这一点来说,包装数据类型可以表现null值,这就是它的优势了。

所以通常情况下,在定义持久化类中的属性时,一定要根据实际情况来选择数据类型,不要让数据存在歧义~

 

转载地址:http://mkexx.baihongyu.com/

你可能感兴趣的文章
JFreeChart开发_用JFreeChart增强JSP报表的用户体验
查看>>
度量时间差
查看>>
通过jsp请求Servlet来操作HBASE
查看>>
Shell编程基础
查看>>
Shell之Sed常用用法
查看>>
3.1
查看>>
校验表单如何摆脱 if else ?
查看>>
<气场>读书笔记
查看>>
web安全问题分析与防御总结
查看>>
Centos下基于Hadoop安装Spark(分布式)
查看>>
3D地图的定时高亮和点击事件(基于echarts)
查看>>
mysql开启binlog
查看>>
设置Eclipse编码方式
查看>>
分布式系统唯一ID生成方案汇总【转】
查看>>
并查集hdu1232
查看>>
Mysql 监视工具
查看>>
从前后端分离到GraphQL,携程如何用Node实现?\n
查看>>
Linux Namespace系列(09):利用Namespace创建一个简单可用的容器
查看>>
博客搬家了
查看>>
Python中使用ElementTree解析xml
查看>>