mvn mybatis-generator:generate
如果要讓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"/>
</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.
另一種返回主鍵值得方法:
<insert id="insertSelective" parameterType="xxxx" >
<selectKey resultType="java.lang.Integer" keyProperty="ID" order="AFTER" >
SELECT LAST_INSERT_ID()
</selectKey>
insert into XXXX
最終結果是 mapper方法返回值爲主鍵ID,同時對象ID值也爲主鍵ID