最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis insert方法主鍵回填和自定義操作

 更新時(shí)間:2021年07月12日 09:53:14   作者:wanson2015  
這篇文章主要介紹了Mybatis insert方法主鍵回填和自定義操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

在數(shù)據(jù)庫插入的時(shí)候,有很多屬性需要我們自己處理,如主鍵自增字段。

MYSQL中主鍵根據(jù)一定規(guī)則生成后,需要我們在插入后去主動(dòng)獲取,以便后面的操作,Mybatis為我們提供了處理的方法。

主鍵回填

  • keyProperty:指定哪個(gè)字段是主鍵
  • useGeneratedKeys:這個(gè)主鍵是否使用數(shù)據(jù)庫內(nèi)置生成策略

我們可以在XML文件中進(jìn)行如下配置:

<insert id="insertUser" parameterType="user" useGeneratedKeys="true" keProperty="id">
 insert into t_user(user_name,age) values (#${userName},#{age})
</insert>

這樣我們傳入的user對象無需設(shè)置id字段,Mybatis會自動(dòng)進(jìn)行設(shè)置處理,插入成功后id字段會回填到user對象中。

使用自定義規(guī)則生成主鍵

實(shí)際工作上有時(shí)候主鍵的生成規(guī)則并不是這么簡單,比如我們?nèi)∠鹴_user的主鍵自增規(guī)則。我們的要求是:

如果t_user表沒有數(shù)據(jù),我們也要設(shè)置主鍵為1,否則就取主鍵最大值加2,來設(shè)置新的主鍵。

對此,Mybatis也提供了處理方法,使用SelectKey元素進(jìn)行處理

<insert id="insertUser" parameterType="user" useGeneratedKeys="true" keProperty="id">
 <SelectKey keProperty="id" resultType="int" order="BEFORE>
  select if(max(id) is null, 1, max(id) + 2) as newId from t_user
 </SelectKey>
 insert into t_user(user_name,age) values (#${userName},#{age})
</insert>

這樣我們就可以根據(jù)自定義的規(guī)則來處理生成主鍵了。

MyBatis中配置主鍵回填

主鍵回填是一個(gè)很常見的需求,我們經(jīng)常需要添加完數(shù)據(jù)之后,需要獲取剛剛添加的數(shù)據(jù) id,數(shù)據(jù)庫主鍵回填在 MyBatis 中的簡單實(shí)現(xiàn)如下:

useGeneratedKeys設(shè)置為true,keyProperty為要回填的屬性名。

當(dāng)插入完成后,這個(gè)對象的 id 就會被自動(dòng)賦值,值就是剛剛插入成功的id。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

措勤县| 嘉兴市| 博爱县| 信宜市| 滦平县| 荆州市| 醴陵市| 荔浦县| 那曲县| 海原县| 五峰| 普陀区| 光泽县| 麻阳| 澄迈县| 南乐县| 左权县| 永和县| 崇文区| 平塘县| 遵义市| 武定县| 乌兰察布市| 罗江县| 龙门县| 阳泉市| 高要市| 石林| 慈利县| 渭源县| 岑巩县| 澜沧| 四子王旗| 邢台市| 安溪县| 东兰县| 都兰县| 石城县| 梁平县| 陵水| 贵溪市|