<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>