MyBatis獲取自動生成的(主)鍵值的方法
Mybatis中insert 方法總是返回一個int值 ,這個值代表的是插入所影響的行數(shù)。 如果id采用自增長策略,自動生成的鍵值在 insert 方法執(zhí)行完后可以被設(shè)置到傳入的參數(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("當(dāng)前行數(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 : 當(dāng)前行數(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í)行結(jié)果已注入到user屬性中,再執(zhí)行insert時,使用#{id}即為selectKey注入的值
- AFTER:selectKey在insert之后執(zhí)行,一般為自增主
到此這篇關(guān)于MyBatis獲取自動生成的(主)鍵值的方法的文章就介紹到這了,更多相關(guān)MyBatis獲取自動生成鍵值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring?boot框架JWT實(shí)現(xiàn)用戶賬戶密碼登錄驗(yàn)證流程
這篇文章主要介紹了Springboot框架JWT實(shí)現(xiàn)用戶賬戶密碼登錄驗(yàn)證,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06springboot結(jié)合vue實(shí)現(xiàn)增刪改查及分頁查詢
本文主要介紹了springboot結(jié)合vue實(shí)現(xiàn)增刪改查及分頁查詢,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09淺談Java并發(fā)中ReentrantLock鎖應(yīng)該怎么用
本文主要介紹了ava并發(fā)中ReentrantLock鎖的具體使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11JavaGUI事件監(jiān)聽機(jī)制超詳細(xì)講解
Java事件監(jiān)聽器是由事件類和監(jiān)聽接口組成,自定義一個事件前,必須提供一個事件的監(jiān)聽接口以及一個事件類。JAVA中監(jiān)聽接口是繼承java.util.EventListener的類,事件類繼承java.util.EventObject的類2023-03-03Spring使用@Autowired注解實(shí)現(xiàn)自動裝配方式
這篇文章主要介紹了Spring使用@Autowired注解實(shí)現(xiàn)自動裝配方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09