在数据库里字段类型如果定义成 bit(1) 的话,mybatis generator 在生成的模型对象中自动会把这一列映射成 java 的 Boolean 类型,由于数据库 bit(1) 这一列是有默认值的,所以不会出现为空的情况。所以,我更希望映射成 boolean 类型,这样一来的话,settter 和 getter 分别是:
isXXX();
setXXX(boolean b);
但是如果映射成 Boolean 的话,setter 和 getter 分别是:
getXXX();
setXXX(Boolean b);
Boolean 由于可能为空,使用起来不方便,isXXX() 一看就知道是布尔类型,而 getXXX() 首先得判空,语义也不如 isXXX() 明确。但前提是数据库里这一列有默认值(或者程序会保证插入值),不会有空的情况。
下面讲一下怎样让 mybatis generator 把数据库中 bit(1) 的字段映射成 boolean 的方法:
<table tableName="my_table" domainObjectName="MyTable">
<generatedKey column="id" sqlStatement="Mysql" type="post" identity="true"/>
<columnOverride column="deleted" javaType="boolean"/>
</table>
deleted 就是数据库中类型为 bit(1) 的列,javaType 改为 boolean 后,生成的模型中的 deleted 字段的类型就为 boolean 类型而不是默认的 Boolean 类型。