现在的位置: 首页 > 综合 > 正文

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

2014年01月20日 ⁄ 综合 ⁄ 共 624字 ⁄ 字号 评论关闭

通过上一小节的学习,可以知道对于可以持久化的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。虽然这可能会牺牲一些转化的效率,但可以避免持久化数据时产生的一些异常。

抱歉!评论已关闭.