mybatis中传入map类型的数据返回int类型数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis中传入map类型的数据返回int类型数据相关的知识,希望对你有一定的参考价值。
<select id="selectByBusIdentifyExcludeId" parameterType="java.util.Map"
resultType="int">
select count(1) from base_bus where bus_identify =
#busIdentify,jdbcType=VARCHAR
<if test="id != null and id != '' ">
and id <![CDATA[<>]]>
#id, jdbcType=INTEGER
</if>
</select>
这段代码为什么总是返回0;mysql中确实有bus_identify = #busIdentify,jdbcType=VARCHAR的行。
主要是想应用在数据库中的唯一键的。
and id <![CDATA[<>]]>
#id, jdbcType=INTEGER
</if>
这个条件呢?如果条件成立,里面的判断有没有满足的呢?追问
这个条件是用于修改的时候判断唯一键bus_identify是否被修改,如果没有修改的话还是可以存储的。
追答select count(1) from base_bus where bus_identify = (busIdentify),这样你说有记录;
select count(1) from base_bus where bus_identify = (busIdentify) and id (id);这样有没有记录存在?不清楚你要做什么,但是后面and后面的条件不满足,显然会是0啊。
谢谢您的回答,是缓存的问题,今天运行成功了。
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.注意点:
记住这些
原文转载来自 http://blog.csdn.net/u010235716/article/details/51698422
以上是关于mybatis中传入map类型的数据返回int类型数据的主要内容,如果未能解决你的问题,请参考以下文章