mybatis技巧

集合和in的表示
	<delete id="deletePrjMembers" parameterType="map" >
		delete from tpm_prj_member 
		where id in 
		<foreach collection="ids" open="(" close=")" item="item" separator=",">
			${item}
		</foreach>
	</delete>



不等于及if判断
	<select id="judgePorjectExisted" parameterType="map" resultType="int">
		select count(id) 
		from tpm_project 
		where code = #{code}
		<if test="id!=null and id!=''">
		and id <![CDATA[<>]]> #{id}
		</if>
	</select>


单个参数
	<select id="selectOwner" resultType="com.XXX.ZZZ.api.model.pm.Project" parameterType="string">
	    SELECT id, name, code FROM tpm_project where 1=1 
	   <if test="_parameter!=null and _parameter!=''">
	     AND 
         (         
            id IN (SELECT DISTINCT prjId  FROM  tpm_prj_member  WHERE  status=1 and  USER=#{_parameter} ) 
            OR '[email protected]'=#{_parameter}
           )	     
	    </if>
	</select>


动态排序,并根据字符串转为数字排序,例:不转为数字升序,“111”排在"29"之前
ORDER BY cast(${orderField} as unsigned) ${orderFieldBy}


like操作
		WHERE ta.mainId = #{mainId}
		<if test="name != null and name != ''">
			and r.name like '%${name}%'
		</if>




	<update id="updateTaskCount" parameterType="map">
		update tpm_require set 
		<choose>
			<when test="operatorType=='insert'">
				taskNum = taskNum + 1
			</when>
			<otherwise>
				taskNum = taskNum - 1
			</otherwise>
		</choose>
		where id = #{reqId}
	</update>

猜你喜欢

转载自yingbin920.iteye.com/blog/1940915