前言
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名申請、虛擬主機、營銷軟件、網站建設、容縣網站維護、網站推廣。
Mybatis的Mapper文件中的select、insert、update、delete元素中有一個parameterType屬性,用于對應的mapper接口方法接受的參數(shù)類型。本文主要給大家介紹了關于MyBatis傳入參數(shù)parameterType類型的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
1. MyBatis的傳入參數(shù)parameterType類型分兩種
1. 1. 基本數(shù)據(jù)類型:int,string,long,Date;
1. 2. 復雜數(shù)據(jù)類型:類和Map
2. 如何獲取參數(shù)中的值:
2.1 基本數(shù)據(jù)類型:#{參數(shù)} 獲取參數(shù)中的值
2.2 復雜數(shù)據(jù)類型:#{屬性名} ,map中則是#{key}
3.案例:
3.1 基本數(shù)據(jù)類型案例
<sql id="Base_Column_List" > id, car_dept_name, car_maker_name, icon,car_maker_py,hot_type </sql> <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" > select <include refid="Base_Column_List" /> from common_car_make where id = #{id,jdbcType=BIGINT} </select>
3.2 復雜類型--map類型
<select id="queryCarMakerList" resultMap="BaseResultMap" parameterType="java.util.Map"> select <include refid="Base_Column_List" /> from common_car_make cm where 1=1 <if test="id != null"> and cm.id = #{id,jdbcType=DECIMAL} </if> <if test="carDeptName != null"> and cm.car_dept_name = #{carDeptName,jdbcType=VARCHAR} </if> <if test="carMakerName != null"> and cm.car_maker_name = #{carMakerName,jdbcType=VARCHAR} </if> <if test="hotType != null" > and cm.hot_type = #{hotType,jdbcType=BIGINT} </if> ORDER BY cm.id </select>
3.3 復雜類型--類類型
<update id="updateByPrimaryKeySelective" parameterType="com.epeit.api.model.CommonCarMake" > update common_car_make <set > <if test="carDeptName != null" > car_dept_name = #{carDeptName,jdbcType=VARCHAR}, </if> <if test="carMakerName != null" > car_maker_name = #{carMakerName,jdbcType=VARCHAR}, </if> <if test="icon != null" > icon = #{icon,jdbcType=VARCHAR}, </if> <if test="carMakerPy != null" > car_maker_py = #{carMakerPy,jdbcType=VARCHAR}, </if> <if test="hotType != null" > hot_type = #{hotType,jdbcType=BIGINT}, </if> </set> where id = #{id,jdbcType=BIGINT} </update>
3.4 復雜類型--map中包含數(shù)組的情況
<select id="selectProOrderByOrderId" resultType="com.epeit.api.model.ProOrder" parameterType="java.util.HashMap" > select sum(pro_order_num) proOrderNum,product_id productId,promotion_id promotionId from pro_order where 1=1 <if test="orderIds != null"> and <foreach collection="orderIds" item="item" open="order_id IN(" separator="," close=")"> #{item,jdbcType=BIGINT} </foreach> </if> GROUP BY product_id,promotion_id </select>
4.注解@Param:這個比較特殊,但是很好理解
案例一:
@Param(value="startdate") String startDate
:注解單一屬性;這個類似于將參數(shù)重命名了一次
如調用mybatis的*mapper.xml中配置sql語句(DAO層)
List<String> selectIdBySortTime(@Param(value="startdate")String startDate);
則xml中的語句,需要配合@param括號中的內容:參數(shù)為startdate
<select id="selectIdBySortTime" resultType="java.lang.String" parameterType="java.lang.String"> select distinct ajlcid from ebd_fh_ajlc where sorttime >= to_date(#{startdate,jdbcType=VARCHAR},'YYYY-MM-DD') and created_date=updated_date and keyvalue in (select distinct companyname from ebd_fh_company_list where isupdate='0') </select>
案例二:
注解javaBean,@Param(value="dateVo") DateVo dateVo;則需要注意編寫的參數(shù)
List<String> selectIds(@Param(value="dateVo")DateVo dateVo);
對應的mapping文件
<select id="selectIds" resultType="java.lang.String" parameterType="com.api.entity.DateVo"> select distinct ajlcid from ebd_fh_ajlc where sorttime >= to_date(# {dateVo.startDate,jdbcType=VARCHAR},'YYYY-MM-DD') and created_date=updated_date and keyvalue in (select distinct companyname from ebd_fh_company_list where isupdate='0') </select>
至于要說優(yōu)缺點的話,看個人喜好
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對創(chuàng)新互聯(lián)的支持。
標題名稱:MyBatis中傳入參數(shù)parameterType類型詳解
標題URL:http://aaarwkj.com/article34/igdpse.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供外貿建站、ChatGPT、網站排名、品牌網站設計、關鍵詞優(yōu)化、商城網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)