trim标签&&MyBatis内置参数
SQL标签:<trim>
<where>可以处理拼接sql中 【开头】第一个and
<trim>可以处理拼接sql中 【开头或结尾】第一个and
开头:给拼接的sql加prefix="where" suffixOverrides="and",处理拼接sql中开头第一个and
<select id="queryStudentByNoWithONGL" parameterType="student" resultType="student"> select * from student1 <trim prefix="where" prefixOverrides="and"> <if test="stuName != null and stuName != '' "> and stuName like '%${stuName}%' </if> <if test="graName != null and graName != '' "> and graName like '%${graName}%' </if> <if test="stuAge != null and stuAge != '' "> and stuAge like '%${stuAge}%' </if> </trim> </select>
结尾
<select id="queryStudentByNoWithONGL" parameterType="student" resultType="student"> select * from student1 <trim prefix="where" suffixOverrides="and"> <if test="stuName != null and stuName != '' "> stuName like '%${stuName}%' and </if> <if test="graName != null and graName != '' "> graName like '%${graName}%' and </if> <if test="stuAge != null and stuAge != '' "> stuAge = #{stuAge} and </if> </trim> </select>
predix:拼接 prefixOverrides:删除
内置参数:
_parameter:代表mybatis的输入参数
<select id="queryStudentByNoWithONGL" parameterType="student" resultType="student"> /*select * from student1 where 1=1*/ select * from student1 <trim prefix="where" suffixOverrides="and"> <if test="_parameter.stuName != null and _parameter.stuName != '' "> stuName like '%${_parameter.stuName}%' and </if> <if test="graName != null and graName != '' "> graName like '%${graName}%' and </if> <if test="stuAge != null and stuAge != '' "> stuAge = #{stuAge} and </if> </trim> </select>
_datebaseId:代表当前数据库的名字
be simple, be happy.