国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

MyBatis中傳入參數parameterType類型詳解

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

前言

Mybatis的Mapper文件中的select、insert、update、delete元素中有一個parameterType屬性,用于對應的mapper接口方法接受的參數類型。本文主要給大家介紹了關于MyBatis傳入參數parameterType類型的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

1. MyBatis的傳入參數parameterType類型分兩種

   1. 1. 基本數據類型:int,string,long,Date;

   1. 2. 復雜數據類型:類和Map

2. 如何獲取參數中的值:

   2.1  基本數據類型:#{參數} 獲取參數中的值

   2.2  復雜數據類型:#{屬性名}  ,map中則是#{key}

3.案例:

 3.1 基本數據類型案例

<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中包含數組的情況

<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 :注解單一屬性;這個類似于將參數重命名了一次

如調用mybatis的*mapper.xml中配置sql語句(DAO層)

List<String> selectIdBySortTime(@Param(value="startdate")String startDate); 

則xml中的語句,需要配合@param括號中的內容:參數為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;則需要注意編寫的參數

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> 

至于要說優缺點的話,看個人喜好

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 隆子县| 东海县| 安溪县| 永宁县| 仙居县| 荣昌县| 石河子市| 棋牌| 开远市| 安庆市| 广水市| 新平| 广宗县| 铅山县| 湖北省| 望江县| 贵定县| 汤阴县| 莆田市| 柳林县| 崇左市| 桦南县| 西和县| 增城市| 五常市| 封开县| 永川市| 易门县| 田东县| 汶川县| 石门县| 舒城县| 子长县| 大邑县| 大石桥市| 兰坪| 泰来县| 农安县| 霍州市| 含山县| 陕西省|