4.2 映射器(Mapper) insert、update噪奄、delete標簽詳解

數據變更語句 insert、update、delete的實現(xiàn)非常接近

insert元素肄鸽,MyBatis會在執(zhí)行插入之后返回一個整數,以表示你進行操作后插入的記錄數

update油啤、delete元素典徘,MyBatis執(zhí)行完之后會返回一個整數,標出執(zhí)行后影響的記錄數益咬。

1.Insert, Update, Delete 標簽元素屬性

  • 1.id

與select標簽的id屬性含義一樣逮诲。作為唯一標識來代表這條語句。

  • 2.parameterType

定義傳入參數的完全限定類名或者別名幽告。

  • 3.flushCache

boolean屬性梅鹦,默認值為true。任何時候只要語句被調用冗锁,都會導致本地緩存和二級緩存都會被清空齐唆。select標簽默認是false

  • 4.timeout

設置超時時間冻河,單位為秒箍邮。

  • 5.statementType

枚舉屬性,有三個枚舉:STATEMENT叨叙、PREPARED 锭弊、CALLABLE 。告訴JDBC使用哪個statement工作擂错。默認值為PREPARED

  • 6.useGeneratedKeys(僅對 insert 和 update 有用)

boolean屬性味滞。默認值為false。表明數據庫是否采用自增長的字段。

  • 7.keyProperty(僅對 insert 和 update 有用)

表示以哪個列作為屬性的主鍵剑鞍。不能與KeyColumn同時使用刹悴。聯(lián)合主鍵可以用逗號(,)隔開。

  • 8.keyColumn(僅對 insert 和 update 有用)

表示第幾列是主鍵攒暇。只接受整形參數土匀。不能與keyProperty同時使用。聯(lián)合主鍵用逗號(,)隔開形用。

  • 9.databaseId

如果配置了 databaseIdProvider就轧,MyBatis會加載所有的不帶 databaseId或匹配當前databaseId的語句;如果帶或者不帶的語句都有田度,則不帶的會被忽略妒御。

2.示例

<insert id="insertAuthor">
  insert into Author (id,username,password,email,bio)
  values (#{id},#{username},#{password},#{email},#{bio})
</insert>

<update id="updateAuthor">
  update Author set
    username = #{username},
    password = #{password},
    email = #{email},
    bio = #{bio}
  where id = #{id}
</update>

<delete id="deleteAuthor">
  delete from Author where id = #{id}
</delete>

3.insert的主鍵回填

當我們執(zhí)行對一個對象插入操作后,需要獲取插入后的對象的主鍵镇饺。那我們就指定useGeneratedKeys屬性及keyProperty屬性

<insert id="insert" useGeneratedKeys="true" keyProperty="id">
    INSERT INTO student (
        `name`,
        `age`,
        `rowStatus`,
        `createdOn`
    ) VALUES (
        #{name},
        #{age},
        #{rowStatus},
        #{createdOn}
    )
</insert>

MyBatis執(zhí)行插入成功后乎莉,會把自增id的屬性映射到POJO的id屬性上。

4.批量插入

如果你的數據支持多行插入奸笤,你也可以傳入一個數組或者集合惋啃,并返回自動生成的主鍵。

<insert id="insertAuthor" useGeneratedKeys="true"
    keyProperty="id">
  insert into Author (username, password, email, bio) values
  <foreach item="item" collection="list" separator=",">
    (#{item.username}, #{item.password}, #{item.email}, #{item.bio})
  </foreach>
</insert>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末监右,一起剝皮案震驚了整個濱河市边灭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌健盒,老刑警劉巖绒瘦,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異扣癣,居然都是意外死亡惰帽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門父虑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來该酗,“玉大人,你說我怎么就攤上這事频轿〈寡模” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵航邢,是天一觀的道長。 經常有香客問我骄蝇,道長膳殷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮赚窃,結果婚禮上册招,老公的妹妹穿的比我還像新娘。我一直安慰自己勒极,他們只是感情好是掰,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辱匿,像睡著了一般键痛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上匾七,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天絮短,我揣著相機與錄音,去河邊找鬼昨忆。 笑死丁频,一個胖子當著我的面吹牛,可吹牛的內容都是我干的邑贴。 我是一名探鬼主播席里,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拢驾!你這毒婦竟也來了胁勺?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤独旷,失蹤者是張志新(化名)和其女友劉穎署穗,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體嵌洼,經...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡案疲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了麻养。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片褐啡。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖鳖昌,靈堂內的尸體忽然破棺而出备畦,到底是詐尸還是另有隱情,我是刑警寧澤许昨,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布懂盐,位于F島的核電站,受9級特大地震影響糕档,放射性物質發(fā)生泄漏莉恼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望俐银。 院中可真熱鬧尿背,春花似錦、人聲如沸捶惜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吱七。三九已至汽久,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間陪捷,已是汗流浹背回窘。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留市袖,地道東北人啡直。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像苍碟,于是被迫代替她去往敵國和親酒觅。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內容