久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

Mybatis實現(xiàn)插入數(shù)據(jù)后返回主鍵過程解析

瀏覽:152日期:2023-10-24 08:19:03

添加記錄后獲取主鍵ID,這是一個很常見的需求,特別是在一次前端調(diào)用中需要插入多個表的場景。

除了添加單條記錄時獲取主鍵值,有時候可能需要獲取批量添加記錄時各記錄的主鍵值,MyBatis從3.3.1版本開始支持批量添加記錄并返回各記錄主鍵字段值。

一、獲取新添加記錄主鍵字段值

注意: 在MyBatis中添加操作返回的是記錄數(shù)并非記錄主鍵id。

如果需要獲取新添加記錄的主鍵值,需要在執(zhí)行添加操作之后,直接讀取Java對象的主鍵屬性。

Integer rows = sqlSession.getMapper(UserMapper.class).insertUser(user);System.out.println('rows = ' + rows); // 添加操作返回記錄數(shù)System.out.println('id = ' + user.getId()); // 執(zhí)行添加操作之后通過Java對象獲取主鍵屬性值

二、在映射器中配置獲取記錄主鍵值

1.xml映射器

在定義xml映射器時設(shè)置屬性useGeneratedKeys值為true,并分別指定屬性keyProperty和keyColumn為對應(yīng)的數(shù)據(jù)庫記錄主鍵字段與Java對象的主鍵屬性。

1.1 插入單條記錄

<mapper namespace='com.dafeng.dao.mapper'><!-- 插入數(shù)據(jù):返回記錄主鍵id值 --><insert parameterType='com.dafeng.model.User' useGeneratedKeys='true' keyProperty='id' keyColumn='id' > insert into user(name,age,create_time,update_time) values(#{name},#{age},now(),now())</insert></mapper>

1.2 插入多條記錄

<!-- 批量添加數(shù)據(jù),并返回主鍵字段 --><insert useGeneratedKeys='true' keyProperty='id'> INSERT INTO user(name,age,create_time,update_time) VALUES <foreach collection='list' separator=',' item='u'> (#{u.name},#{u.age},now(),now()) </foreach></insert>

2.接口映射器

在接口映射器中通過注解@Options分別設(shè)置參數(shù)useGeneratedKeys,keyProperty,keyColumn值

2.1 插入單條記錄

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

2.2 插入多條記錄

如果希望執(zhí)行批量添加并返回各記錄主鍵字段值,只能在xml映射器中實現(xiàn),在接口映射器中無法做到。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Mybatis 數(shù)據(jù)庫
相關(guān)文章:
主站蜘蛛池模板: 双桥区| 潞西市| 榆中县| 沁源县| 明光市| 南宁市| 大足县| 石嘴山市| 杭锦后旗| 深州市| 江口县| 南岸区| 茌平县| 五常市| 横山县| 洛阳市| 丰镇市| 吴旗县| 双牌县| 翁牛特旗| 蒙阴县| 贡嘎县| 长泰县| 永善县| 伽师县| 霸州市| 美姑县| 通渭县| 邯郸县| 山阳县| 天峨县| 仁化县| 吉安市| 丹江口市| 黄浦区| 航空| 龙里县| 清丰县| 怀宁县| 前郭尔| 攀枝花市|