MyBatis的传入参数parameterType类型

时间:2023-03-09 13:08:22
MyBatis的传入参数parameterType类型

1. MyBatis的传入参数parameterType类型分两种

1. 1. 基本数据类型:int,string,long,Date;

1. 2. 复杂数据类型:类和Map

2. 如何获取参数中的值:

2.1  基本数据类型:#{参数} 获取参数中的值

2.2  复杂数据类型:#{属性名}  ,map中则是#{key}

3.案例:

3.1 基本数据类型案例

  1. <sql id="Base_Column_List" >
  2. id, car_dept_name, car_maker_name, icon,car_maker_py,hot_type
  3. </sql>
  4. <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
  5. select
  6. <include refid="Base_Column_List" />
  7. from common_car_make
  8. where id = #{id,jdbcType=BIGINT}
  9. </select>

3.2 复杂类型--map类型

  1. <select id="queryCarMakerList" resultMap="BaseResultMap" parameterType="java.util.Map">
  2. select
  3. <include refid="Base_Column_List" />
  4. from common_car_make cm
  5. where 1=1
  6. <if test="id != null">
  7. and  cm.id = #{id,jdbcType=DECIMAL}
  8. </if>
  9. <if test="carDeptName != null">
  10. and  cm.car_dept_name = #{carDeptName,jdbcType=VARCHAR}
  11. </if>
  12. <if test="carMakerName != null">
  13. and  cm.car_maker_name = #{carMakerName,jdbcType=VARCHAR}
  14. </if>
  15. <if test="hotType != null" >
  16. and  cm.hot_type = #{hotType,jdbcType=BIGINT}
  17. </if>
  18. ORDER BY cm.id
  19. </select>

3.3 复杂类型--类类型

  1. <update id="updateByPrimaryKeySelective" parameterType="com.epeit.api.model.CommonCarMake" >
  2. update common_car_make
  3. <set >
  4. <if test="carDeptName != null" >
  5. car_dept_name = #{carDeptName,jdbcType=VARCHAR},
  6. </if>
  7. <if test="carMakerName != null" >
  8. car_maker_name = #{carMakerName,jdbcType=VARCHAR},
  9. </if>
  10. <if test="icon != null" >
  11. icon = #{icon,jdbcType=VARCHAR},
  12. </if>
  13. <if test="carMakerPy != null" >
  14. car_maker_py = #{carMakerPy,jdbcType=VARCHAR},
  15. </if>
  16. <if test="hotType != null" >
  17. hot_type = #{hotType,jdbcType=BIGINT},
  18. </if>
  19. </set>
  20. where id = #{id,jdbcType=BIGINT}
  21. </update>

3.4 复杂类型--map中包含数组的情况

  1. <select id="selectProOrderByOrderId" resultType="com.epeit.api.model.ProOrder" parameterType="java.util.HashMap" >
  2. select sum(pro_order_num) proOrderNum,product_id productId,promotion_id promotionId
  3. from pro_order
  4. where 1=1
  5. <if test="orderIds != null">
  6. and
  7. <foreach collection="orderIds" item="item" open="order_id IN(" separator="," close=")">
  8. #{item,jdbcType=BIGINT}
  9. </foreach>
  10. </if>
  11. GROUP BY product_id,promotion_id
  12. </select>

4.注意点:

记住这些

原文转载来自 http://blog.****.net/u010235716/article/details/51698422