Mybatis动态公用sql

<select id="collPageCount" parameterType="java.util.Map" resultType="long">
		  select count(1) from ( <include refid="selectPage"></include> ) a
	</select> 
	<select id="collListPage" parameterType="java.util.Map" resultMap="mycoll">
       <include refid="selectPage"></include>
	</select>
	<sql id="selectPage">
	 SELECT
	c.id as cid,
	i.id AS iid,
	i.type_id,
	i.`name`,
	i.img
	FROM
	wsp_collection c
	LEFT JOIN wsp_vf_info i ON c.vf_id = i.id 
		<where>
			<if test="userid != null and  userid != '' ">
				and c.user_id=#{userid}
			</if>
		</where>
		and  i.state=1
	</sql>

  mybatis进行多条件查询的时候,如果传入的参数有int类型,对用非空判断只需要"id!= null''"即可,不需要进行"id!=''"的判断,否则查询条件会被忽略。

<sql id="condition_sql">
        <if test="userid != null and userid != ''"> and  user_id = #{userid} </if>
        <if test="vfId != null and vfId != ''"> and  vf_id = #{vfId} </if>
        <if test="id != null"> and id =#{id}</if><!-- id为int型-->
    </sql>
<select id="listPageCount" parameterType="java.util.Map" resultType="long">
		select count(1) from 
		wsp_vf_plays
		<where>
		 <include refid="condition_sql"></include>
		 </where>
	</select> 

  

原文地址:https://www.cnblogs.com/SimonHu1993/p/7327323.html