Mybatis generator 自動生成代碼時 ,insert返回主鍵值

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章