MyBatis生成UUID的實(shí)現(xiàn)
1.<selectKey>標(biāo)簽屬性說明
- keyProperty:設(shè)置需要自動(dòng)生成鍵值的列
- order:可選值BEFORE和AFTER,設(shè)置為BEFORE會(huì)先執(zhí)行selectKey語句,設(shè)置keyProperty屬性,再執(zhí)行insert語句;設(shè)置為AFTER會(huì)先執(zhí)行insert語句再執(zhí)行selectKey語句
- resultType:結(jié)果類型,MyBatis 通常可以自己檢測(cè)到,但這并不影響給它一個(gè)確切的類型。MyBatis 允許使用任何基本的數(shù)據(jù)類型作為鍵值,也包括String 類型。
- statementType:支持STATEMENT、PREPARED 和CALLABLE 語句類型,分別對(duì)應(yīng)Statement, PreparedStatement 和CallableStatement
2.XML方式(mysql數(shù)據(jù)庫(kù)為例)
使用 <selectKey>標(biāo)簽,keyProperty設(shè)置生成的UUID所綁定的屬性,如設(shè)置為id,即會(huì)將值綁定到參數(shù)對(duì)象User的id屬性上;order屬性設(shè)置為BEFORE,先執(zhí)行selectKey語句
<insert id="save" parameterType="User"> <selectKey keyProperty="id" resultType="string" order="BEFORE"> select replace(uuid(), '-', '') as id from dual </selectKey> insert into t_user(id, user_sex) values( #{id}, #{user_sex} ) </insert>
3.注解方式
使用@SelectKey注解,屬性和<selectKey>標(biāo)簽類似。before屬性設(shè)置為true,類似于<selectKey>標(biāo)簽order屬性設(shè)置為BEFORE
@Insert("insert into t_user(id, user_sex) values(#{id}, #{user_sex})") @SelectKey(keyProperty = "id", resultType = String.class, before = true, statement = "select replace(uuid(), '-', '') as id from dual") public int save(User user);
測(cè)試代碼:
User user = new User(); user.setUser_age(22); user.setUser_sex(1); int count = userMapper.save(user); System.out.println("count:" + count); System.out.println("id:" + user.getId());
到此這篇關(guān)于MyBatis生成UUID的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)MyBatis生成UUID內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一次線上websocket返回400問題排查的實(shí)戰(zhàn)記錄
最近項(xiàng)目中有端對(duì)端通信場(chǎng)景,實(shí)時(shí)性要求較高,考慮后選用了websocket 這一通信協(xié)議,下面這篇文章主要給大家介紹了一次線上websocket返回400問題排查的實(shí)戰(zhàn)記錄,需要的朋友可以參考下2022-04-04Spring使用注解進(jìn)行引用類型的自動(dòng)裝配逐步分析
自動(dòng)裝配是springboot的核心,一般提到自動(dòng)裝配就會(huì)和springboot聯(lián)系在一起。實(shí)際上Spring Framework早就實(shí)現(xiàn)了這個(gè)功能。Spring Boot只是在其基礎(chǔ)上,通過SPI的方式,做了進(jìn)一步優(yōu)化2023-03-03SpringBoot整合Elasticsearch并實(shí)現(xiàn)CRUD操作
這篇文章主要介紹了SpringBoot整合Elasticsearch并實(shí)現(xiàn)CRUD操作,需要的朋友可以參考下2018-03-03Java判斷2個(gè)List集合是否相等(不考慮元素的順序)
今天小編就為大家分享一篇關(guān)于Java判斷2個(gè)List集合是否相等(不考慮元素的順序)的文章,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10Spring Boot 2.0 配置屬性自定義轉(zhuǎn)換的方法
這篇文章主要介紹了Spring Boot 2.0 配置屬性自定義轉(zhuǎn)換的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11spring-gateway網(wǎng)關(guān)聚合swagger實(shí)現(xiàn)多個(gè)服務(wù)接口切換的示例代碼
這篇文章主要介紹了spring-gateway網(wǎng)關(guān)聚合swagger實(shí)現(xiàn)多個(gè)服務(wù)接口切換的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03