• Java中基本数据类型和包装数据类型在Hibernate中使用


    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值,这就是它的优势了。

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

  • 相关阅读:
    org.eclipse.swt.SWTException: Invalid thread access问题解决方法
    V3700系列存储数据恢复成功
    导致磁盘阵列数据丢失的7个常见原因/早做准备哦
    服务器分区丢失数据恢复过程(阵列数据恢复)
    EFS加密文件无法打开怎么办
    raid5硬盘硬件修复;条带分析方法;阵列重组
    程序员节/技术党福利:ORACLE 环境故障数据恢复方案
    HP MSA存储 raid组lvm下vxfs文件系统数据恢复方案
    如何排除服务器中RAID5故障/服务器数据恢复案例
    linux服务器数据恢复方法_服务器硬盘故障解决方案
  • 原文地址:https://www.cnblogs.com/candle806/p/2834041.html
Copyright © 2020-2023  润新知