如果要让generator自动添加该功能,可以如下配置:
<!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名;不需要生成Example类 -->
<table schema="" tableName="ACT_SecurityBlockLog" domainObjectName="BlockLog"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
<property name="useActualColumnNames" value="true"/>
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
<!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名;不需要生成Example类 -->
<table schema="" tableName="ACT_SecurityBlockLog" domainObjectName="BlockLog"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
<property name="useActualColumnNames" value="true"/>
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
</table>
或者手动增加:
<insert id="insert" parameterType="Activity" keyProperty="id"
keyColumn="ID" useGeneratedKeys="true">
主键值有 对象.getId()获得
方法只返回成功影响的行数:1
在insert里面加入selectKey标签就可以了. 一般都是返回的int类型.对应数据库是自增长字段.
要注意的是: ibatis会直接返回int值. Mybatis则把int值包装在参数对象里面.
public int insert(User user) {
//ibatis方式.
int result = UserMapper.insert(user);
return result;
//Mybatis方式
user = UserMapper.insert(user);
return user.getId();
}
还要注意的是数据库类型不一样,生成ID的策略也不一样. 可以对selectKey添加属性(名字忘记了), pre---先生成ID. post---后生成ID. default是post.