MyBatis獲取自動生成的(主)鍵值的方法
Mybatis中insert 方法總是返回一個int值 ,這個值代表的是插入所影響的行數(shù)。 如果id采用自增長策略,自動生成的鍵值在 insert 方法執(zhí)行完后可以被設置到傳入的參數(shù)對象中。那么我們可以在service中通過傳入的對象來獲得插入的id值。
mapper.xml文件
<insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.woniuxy.springbootmybatis.entity.User" useGeneratedKeys="true"> insert into user ( id,user_name,tel ,password,age,create_date ,head_img,dept_id) values (#{id,jdbcType=INTEGER},#{userName,jdbcType=VARCHAR},#{tel,jdbcType=VARCHAR} ,#{password,jdbcType=VARCHAR},#{age,jdbcType=INTEGER},#{createDate,jdbcType=TIMESTAMP} ,#{headImg,jdbcType=VARCHAR},#{deptId,jdbcType=INTEGER}) </insert>
service代碼
@Override public int insertSelective(User record) { int result = userMapper.insertSelective(record); log.info("當前行數(shù)據(jù)的ID為{}",record.getId()); return result; }
日志文件為:
2023-04-06 15:45:09.813 INFO 15952 --- [nio-8080-exec-1] c.w.s.service.impl.UserServiceImpl : 當前行數(shù)據(jù)的ID為107
非自增長的主鍵
<insert id="add" parameterType="user"> <selectKey keyProperty="id" order="BEFORE" resultType="string"> select uuid() </selectKey> insert into questions (id,title) values(#{id},#{title}) </insert>
- insert入?yún)⑻畛?、返回值不?ul>
- 返回值還是Integer受影響的行數(shù)
- 入?yún)⒌膗ser中也會注入主鍵值
- BEFORE:selectKey在insert之前執(zhí)行,一般為uuid、序列,此時執(zhí)行結果已注入到user屬性中,再執(zhí)行insert時,使用#{id}即為selectKey注入的值
- AFTER:selectKey在insert之后執(zhí)行,一般為自增主
到此這篇關于MyBatis獲取自動生成的(主)鍵值的方法的文章就介紹到這了,更多相關MyBatis獲取自動生成鍵值內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring?boot框架JWT實現(xiàn)用戶賬戶密碼登錄驗證流程
這篇文章主要介紹了Springboot框架JWT實現(xiàn)用戶賬戶密碼登錄驗證,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06springboot結合vue實現(xiàn)增刪改查及分頁查詢
本文主要介紹了springboot結合vue實現(xiàn)增刪改查及分頁查詢,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09淺談Java并發(fā)中ReentrantLock鎖應該怎么用
本文主要介紹了ava并發(fā)中ReentrantLock鎖的具體使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11Spring使用@Autowired注解實現(xiàn)自動裝配方式
這篇文章主要介紹了Spring使用@Autowired注解實現(xiàn)自動裝配方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09