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