亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

詳解MyBatis 常用寫法

2024-07-14 08:42:55
字體:
來源:轉載
供稿:網友

什么是 MyBatis ?

MyBatis 是一款優秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或注解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄。

1、forEach 循環

  forEach 元素的屬性主要有 item, idnex, collection, open, separator, close。

1.collection:傳入的 List 或 Array 或自己封裝的 Map。
2.item:集合中元素迭代時的別名。
3.idnex:集合中元素迭代是的索引。
4.open:where 后面表示以什么開始,如以‘('開始。
5.separator:表示在每次進行迭代是的分隔符。
6.close:where后面表示以什么結束,如以‘)'結束。

//mapper中需要傳遞一個容器public List<User> queryByIdList(List<Integer> userIdList);<select id="queryByIdList" resultMap="BaseResultMap" parameterType="map">  SELECT * FROM user  WHERE userId IN  <foreach collection="userIdList" item="id" index="index" open="(" close=")" separator=",">    #{id}  </foreach></select>

 

2、concat 模糊查詢

//模糊查詢使用concat拼接sql<select id="queryByName" resultMap="BaseResultMap" paramterType"string">  SELECT * FROM user  <where>    <if test="name != null">      name like concat('%', concat(#{name}, '%'))    </if>  </where></select>

3、if + where 標簽

用 if 標簽判斷參數是否有效來進行條件查詢。

<select id="getUserList" resultMap="BaseResultMap" paramterType="com.demo.User">  SELECT * FROM user  <where>    <if test="userId !=null and userId!= ''">      userId= #{userId}    </if>    <if test="name !=null and name!= ''">      AND name= #{name}    </if>    <if phone="userId !=null and phone!= ''">      AND phone= #{phone}    </if>  </where></select>

where 動態語句中,where 標簽會自動去掉 AND 或 OR。防止 WHERE AND 錯誤。

4、if + set

使用 set 標簽可以動態的配置 SET 關鍵字,使用 if + set 標簽,如果某項為 null 則不進行更新。

<update id="updateUser" paramterType="com.demo.User">
    UPDATE user
    <set>
        <if test=" name != null and name != ''">
            name = #{name},
        </if>
        <if test=" phone != null and phone != ''">
            phone = #{phone},
        </if>
    </set>
    WHERE userId = #{userId}
</update>

5、if + trim 代替 where/set 標簽

  trim 可以更靈活的去處多余關鍵字的標簽,可以實現 where 和 set 的效果。

<select id="getUserList" resultMap="BaseResultMap" paramterType="com.demo.User">  SELECT * FROM user  <trim prefix="WHERE" prefixOverrides="AND|OR">    <if test="userId !=null and userId!= ''">      userId= #{userId}    </if>    <if test="name !=null and name!= ''">      AND name= #{name}    </if>    <if phone="userId !=null and phone!= ''">      AND phone= #{phone}    </if>  </trim></select><update id="updateUser" paramterType="com.demo.User">  UPDATE user  <trim prefix="SET" suffixOverrides=",">    <if test=" name != null and name != ''">      name = #{name},    </if>    <if test=" phone != null and phone != ''">      phone = #{phone},    </if>  </trim>  WHERE userId = #{userId}</update>

5、choose(when, otherwise)標簽

  choose 標簽是按順序判斷其內部 when 標簽中的 test 條件是否成立,如果有一個成立,則 choose 結束。當 choose 中所有 when 的條件都不滿足,則執行 otherwise 中的 sql。類似 java 中的 switch 語句,choose 為 switch,when 為 case,otherwise 則為 default。

<select id="selectCustomerByCustNameAndType" parameterType="map" resultMap="BaseResultMap">  SELECT * FROM user  <choose>    <when test="Utype == 'name'">      WHERE name = #{name}     </when>    <when test="Utype == 'phone'">      WHERE phone= #{phone}    </when>    <when test="Utype == 'email'">      WHERE email= #{email}    </when>    <otherwise>      WHERE name = #{name}    </otherwise>  </choose></select>

總結

以上所述是小編給大家介紹的MyBatis 常用寫法 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频白浆免费视频| 成人精品视频久久久久| 久久久女人电视剧免费播放下载| 91免费视频网站| 欧美寡妇偷汉性猛交| 欧美高清在线播放| 日韩欧美国产免费播放| 欧美理论电影在线播放| 欧美激情高清视频| 亚洲欧美国产精品专区久久| 日韩电影免费观看在线| 97久久精品在线| 91亚洲国产成人久久精品网站| 日韩av网站大全| 日韩一区在线视频| 亚洲欧美国产va在线影院| 91精品国产乱码久久久久久蜜臀| 欧美中文在线视频| 美女精品视频一区| 欧美在线视频a| 成人福利网站在线观看| 欧美电影免费在线观看| 亚洲片在线资源| 国产精品你懂得| 欧美日韩成人精品| 欧美大片va欧美在线播放| 成人网在线免费看| 一区二区欧美日韩视频| 亚洲成色999久久网站| 亚洲跨种族黑人xxx| 国产精品亚洲网站| 一区二区三区无码高清视频| 日韩一区二区av| 不卡毛片在线看| 国内精品视频久久| 亚洲精品国产精品国自产观看浪潮| 亚洲欧美一区二区三区情侣bbw| 一区二区三区高清国产| 亚洲色在线视频| 91精品在线观看视频| 国产精品91久久久久久| 欧美日韩一区二区三区| 91系列在线播放| 亚洲视频欧洲视频| 欧美成人精品激情在线观看| 91亚洲精华国产精华| 91色在线视频| 日韩大片在线观看视频| 成人激情电影一区二区| 欧美日韩国产限制| 在线播放国产一区二区三区| 日韩国产欧美区| 97人人爽人人喊人人模波多| 成人国产精品免费视频| 欧美精品videos| 日韩中文字幕在线观看| 在线播放国产一区二区三区| 久久久久久久久久av| 亚洲精品一区中文| 一区二区三区美女xx视频| 国产精品视频久久久久| 国精产品一区一区三区有限在线| 亚洲激情小视频| 成人性生交大片免费看视频直播| 久久久久久有精品国产| 激情成人在线视频| 国产一区二区在线免费| 91国产美女在线观看| 午夜精品久久久久久久99热| 久久免费视频网站| 国产午夜精品美女视频明星a级| 亚洲国产欧美一区二区三区同亚洲| 欧美视频在线观看 亚洲欧| 伊人伊成久久人综合网小说| 成人精品一区二区三区电影黑人| 97超级碰碰人国产在线观看| 亚洲国产精品va在线看黑人动漫| 成人久久一区二区三区| 97人人模人人爽人人喊中文字| 久久久久久久久久国产精品| 欧洲亚洲妇女av| 国产精品高清在线观看| 久久全球大尺度高清视频| 尤物九九久久国产精品的分类| 疯狂做受xxxx高潮欧美日本| 欧美自拍大量在线观看| 亚洲国产成人精品久久久国产成人一区| 亚洲美女在线看| 97精品国产97久久久久久免费| 亚洲最大激情中文字幕| 亚洲欧美成人网| 欧美在线亚洲在线| 欧美性高潮床叫视频| 欧美日韩亚洲激情| 久久亚洲精品一区| 亚洲91av视频| 日韩国产高清视频在线| 欧美日韩国产成人在线观看| 欧美视频免费在线| 日韩成人免费视频| 久色乳综合思思在线视频| 一区二区三区亚洲| 国产免费成人av| 欧美精品日韩www.p站| 伊人伊人伊人久久| 国产精品av在线| 亚洲色图综合久久| 日韩国产中文字幕| 亚洲国产毛片完整版| wwwwwwww亚洲| 不卡av电影在线观看| 性金发美女69hd大尺寸| 日韩有码在线播放| 日产精品99久久久久久| 欧美极品少妇xxxxⅹ裸体艺术| 国产精品久久久久福利| 国产精品久久久久久久av大片| 日韩经典一区二区三区| 亚洲精品久久久久久久久久久久久| 欧美黑人极品猛少妇色xxxxx| 亚洲奶大毛多的老太婆| 色狠狠av一区二区三区香蕉蜜桃| 欧美日韩国内自拍| 97精品国产97久久久久久春色| 欧美一区二区三区精品电影| 欧美性jizz18性欧美| 国产一区深夜福利| 午夜精品久久久久久久男人的天堂| xvideos亚洲人网站| 欧美精品国产精品日韩精品| 欧美成人亚洲成人| 成人天堂噜噜噜| 亚洲欧美日韩国产精品| 庆余年2免费日韩剧观看大牛| 91精品视频大全| 欧美日韩国产一区二区三区| 精品福利免费观看| 亚洲欧美日韩一区二区三区在线| 国产精品久久久久久久一区探花| 亚洲 日韩 国产第一| 亚洲精品之草原avav久久| 日本精品性网站在线观看| 91精品中国老女人| 国产999在线| 国产午夜精品美女视频明星a级| 成人福利网站在线观看11| 亚洲情综合五月天| 国产精品久久久久久久久免费| 国产成人精品电影| 国产精品入口夜色视频大尺度| xxx欧美精品| 亚洲理论电影网| 欧美大码xxxx| 亚洲最新av在线网站| 尤物99国产成人精品视频| 91国产视频在线播放| 另类视频在线观看| 亚洲护士老师的毛茸茸最新章节| 日韩在线精品视频| 亚洲男人的天堂在线| 成人xxxxx| 日本19禁啪啪免费观看www| 亚洲综合精品一区二区| 欧美一级电影在线|