一个表中需要有一个类别字段,只有三种类别,数据库中与java程序中应使用哪种数据类型?
1、
原来数据库中常用char(1),1,2,3代表三种类别,而到了java中,需要根据类别做不同处理,无论用if还是switch都不容易理解。
2、
如果直接用字符串,如"large""small""middle",在java中用字符串判断,容易理解,但性能好吗?
3、
或者用枚举,枚举性能会好吗?我访问数据库用ibatis,如何映射枚举呢?
4、
java中是否改用三个boolean属性代替一个类别属性呢?有好处吗?
建议用枚举,ibatis不熟悉,但是在hibernate的JPA实现,或者openJPA时,可以直接使用枚举类型的字段。
[code="java"]
@Enumerated(EnumType.STRING)
@Column(name="state", length=32)
public AppState getState() {
return state;
}
[/code]
其中,AppState是enum类型,数据库中自动映射为varchar类型的字段