List<Staff> getStaffByCondition(@Param("text") String conditionText,
@Param("type") String conditionType,
@Param("gender") String conditionGender,
@Param("j_id") String conditionJob,
@Param("d_id") String conditionDepartment);
<select id="getStaffByCondition" resultMap="base">
select staff.s_id, staff.s_name, gender, phone, s_address, salary, staff_department_job.d_id, department.d_name
from staff left join staff_department_job on staff.s_id = staff_department_job.s_id
join department on staff_department_job.d_id = department.d_id
where
<if test="text==null">
1 = 1
</if>
<if test="text!=null">
<if test="type==null">
s_name = #{text} or staff.s_id = #{text} or phone = #{text}
</if>
<if test="type!=null">
${type} = #{text}
</if>
</if>
<if test="gender!=null">
and gender = #{gender}
</if>
</select>
其中test=“”,引号中的语法与java if语句语法类似,只是不能使用&&,空格等符号。&&可以用and替换,也可以转义,详情请看HTML-ISO-8859-1