mybatis的selectKey功用

引言(需求)

 

         需求來了,聽好了。

         車主故事錄入(車主分享自己的購車經歷),按照長城的需求來說,一個車主只能分享一次故事,如果在進入

個人中心裏,需判斷是否有車主故事了,如果有直接修改,沒有則添加。之前蠢蠢的,做個 if 判斷嘛,有記錄就修

改,沒有記錄就添加,但是一整理的時候發現重複代碼太多。後來想到咱們用Hibernate的時候不是有個方法交

UpdateorSave嗎,網上一查,mybatis果然可以實現!


直接上代碼!

        

  1. <!-- 車主故事錄入 -->  
  2. <insert id="saveCarStory" useGeneratedKeys="true" keyProperty="memberOwnerStoryId" parameterType="com.ec.model.carStory.MemberOwnerStory">  
  3.     <!-- 查看是否存在memberid,如果存在及更新,否則插入 -->  
  4.     <selectKey keyProperty="count" resultType="int" order="BEFORE">    
  5.         select count(*) as count from member_owner_story where MEMBER_ID = #{memberId,jdbcType=INTEGER}  
  6.     </selectKey>        
  7.       
  8.     <!-- 如果大於0則更新 -->    
  9.     <if test="count>0">    
  10.         update member_owner_story set         
  11.         STORY_TOPIC=#{storyTopic,jdbcType=VARCHAR},  
  12.         STORY_CONTENT=#{storyContent,jdbcType=VARCHAR},           
  13.         ADD_TIME=#{addTime,jdbcType=VARCHAR},             
  14.         SHOW_CARTYPE=#{showCartype,jdbcType=VARCHAR},  
  15.         SAVE_MODE=#{saveMode,jdbcType=VARCHAR}  
  16.         where MEMBER_ID = #{memberId,jdbcType=INTEGER}  
  17.     </if>  
  18.       
  19.     <!-- 如果等於0則保存 -->    
  20.     <if test="count==0">  
  21.         insert into member_owner_story  
  22.         <trim prefix="(" suffix=")" suffixOverrides="," >  
  23.             <if test="memberId != null ">MEMBER_ID,</if>  
  24.             <if test="productId != null ">PRODUCT_ID,</if>  
  25.             <if test="catalogId != null ">CATALOG_ID,</if>  
  26.             <if test="storyTopic != null ">STORY_TOPIC,</if>  
  27.             <if test="storyContent != null ">STORY_CONTENT,</if>  
  28.             <if test="showTime != null ">SHOW_TIME,</if>  
  29.             <if test="isAudit != null ">IS_AUDIT,</if>  
  30.             <if test="auditUserId != null ">AUDIT_USER_ID,</if>  
  31.             <if test="auditTime != null ">AUDIT_TIME,</if>  
  32.             <if test="isDelete != null ">IS_DELETE,</if>  
  33.             <if test="addUserId != null ">ADD_USER_ID,</if>  
  34.             <if test="addTime != null ">ADD_TIME,</if>  
  35.             <if test="editUserId != null ">EDIT_USER_ID,</if>  
  36.             <if test="editTime != null ">EDIT_TIME,</if>  
  37.             <if test="noAuditReason != null ">NO_AUDIT_REASON,</if>  
  38.             <if test="praiseNum != null ">PRAISE_NUM,</if>  
  39.             <if test="showCartype != null ">SHOW_CARTYPE,</if>  
  40.             <if test="saveMode != null ">SAVE_MODE,</if>  
  41.         </trim>  
  42.         <trim prefix="values (" suffix=")" suffixOverrides="," >  
  43.             <if test="memberId != null ">#{memberId,jdbcType=INTEGER},</if>  
  44.             <if test="productId != null ">#{productId,jdbcType=INTEGER},</if>  
  45.             <if test="catalogId != null ">#{catalogId,jdbcType=INTEGER},</if>  
  46.             <if test="storyTopic != null ">#{storyTopic,jdbcType=VARCHAR},</if>  
  47.             <if test="storyContent != null ">#{storyContent,jdbcType=VARCHAR},</if>  
  48.             <if test="showTime != null ">#{showTime,jdbcType=VARCHAR},</if>  
  49.             <if test="isAudit != null ">#{isAudit,jdbcType=VARCHAR},</if>  
  50.             <if test="auditUserId != null ">#{auditUserId,jdbcType=VARCHAR},</if>  
  51.             <if test="auditTime != null ">#{auditTime,jdbcType=VARCHAR},</if>  
  52.             <if test="isDelete != null ">#{isDelete,jdbcType=VARCHAR},</if>  
  53.             <if test="addUserId != null ">#{addUserId,jdbcType=VARCHAR},</if>  
  54.             <if test="addTime != null ">#{addTime,jdbcType=VARCHAR},</if>  
  55.             <if test="editUserId != null ">#{editUserId,jdbcType=VARCHAR},</if>  
  56.             <if test="editTime != null ">#{editTime,jdbcType=VARCHAR},</if>  
  57.             <if test="noAuditReason != null ">#{noAuditReason,jdbcType=VARCHAR},</if>  
  58.             <if test="praiseNum != null ">#{praiseNum,jdbcType=VARCHAR},</if>  
  59.             <if test="showCartype != null ">#{showCartype,jdbcType=VARCHAR},</if>  
  60.             <if test="saveMode != null ">#{saveMode,jdbcType=VARCHAR},</if>  
  61.         </trim>  
  62.     </if>  
  63.       
  64. </insert>  


       先根據memberId判斷是否有車主故事的相關記錄,返回count,如果有數據(count>0),則說明車主之前錄入過

車主故事,所以直接進行更新就Ok;否則進行插入操作。

       這樣就實現了更新和插入的操作了哦~~~很簡單吧~~

發佈了60 篇原創文章 · 獲贊 66 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章