最新Mybatis插入數據返回自增主鍵詳細配置

Mybatis插入數據返回自增主鍵

Mybatis插入數據以後只會返回影響的數據庫行數,如果是插入一條數據成功則返回1,失敗返回零,插入多條返回插入成功的數量。
通過註解或者xml配置無法直接返回自增的主鍵。Mybatis插入數據返回的自增主鍵會自動設置爲插入對象的屬性值,因此我們可以通過獲取對象的屬性獲得自增的主鍵。

1、通過xml配置獲取自增主鍵

xml配置

	<insert id="addUser" parameterType="com.learn.wyg.model.User">
        <selectKey order="AFTER" keyProperty="id" resultType="Integer">
            select last_insert_id()
        </selectKey>
        insert into sys_user(username,password,status) values(#{username},#{password},#{status});
    </insert>

或者
(這裏keyProperty是java對象的屬性,keyColumn是數據庫表列名,也就是主鍵名)

	<insert id="addUser" useGeneratedKeys="true" keyProperty="id" keyColumn="id" parameterType="com.learn.wyg.model.User">
        insert into sys_user(username,password,status) values(#{username},#{password},#{status});
    </insert>

mapper

public Integer addUser(User user);

Service
在返回屬性前需要先執行插入方法,這樣mybatis纔會把返回的自增主鍵設置爲對象的屬性。

	public Integer insertUser(User user){
        Integer res = userMapper.addUser(user);
        return user.getId();
    }

2、註解方式

註解配置方法

// 返回主鍵字段id值
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
@Insert("insert  into user (name,age) values (#{name},#{age})")
Integer insert(User user);

其餘配置均與xml配置的方式相同。

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