5.2.4 映射优化一:基本数据类型VS封装类

本文讨论了Java中基本数据类型及其包装类在数据库映射时的选择问题。通过对比int与Integer在处理null值时的不同表现,建议使用包装类来避免转换异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过上一小节的学习,可以知道对于可以持久化的Java类型中,即可以映射基本的数据类型,如byte int short long boolean char float double等。有可以映射成Byte Integer Short Long Boolean Character Float Double类型。那么选择那种类型比较合适呢?

下面举个例子:有这样一个表contact的定义分别如下:

CREATE TABLE  contact (

  id int(20) NOT NULL,

  name varchar(50) default NULL,

  email varchar(255) default NULL,

  age int(11) default NULL

)

l         对于字段id,它的值不能为null,所以映射成int型和Interger型都是可以的。

l         但对于字段age来说,它的值可能为null。当为null时,若此时Entity的对应属性的类型为int,则将一个null的值转化成int型必定产生转换异常;但此时Entity对应的属性类型为Interger,它是一个对象,对象的值可以为null,所以不会产生问题。

因此,建议标注实体的属性使用Java基本类型的包装类Byte Integer Short Long Boolean Character Float Double。虽然这可能会牺牲一些转化的效率,但可以避免持久化数据时产生的一些异常。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值