mybatis中concat的用法
案例一:条件查询+分页操作 pojo类(作用:多参数传递)public class PageParams {private int start ;private int limit;/*******setter and getter*********/}接口方法传递一个pojo类及另外参数可用一个pojo类来代替,mapper中相应sql...
·
案例一:条件查询+分页操作
pojo类(作用:多参数传递)
public class PageParams {
private int start ;
private int limit;
/*******setter and getter*********/
}
接口方法
传递一个pojo类及另外参数
可用一个pojo类来代替,mapper中相应sql加<if>判断参数非空
public List<Role> findByMix (@Param ("params") Role role,
@Param ("page") PageParams pageParams) ;
mapper.xml
<select id=" findByMix" resultType="role" >
select id,role_name as roleName ,note from t_role
where role_name like concat ('%', #{params.roleName},'%')
and note like concat('%', #{params.note},'%')
limit #{page.start},#{page.limit}
</select>
案例二:多条件查询角色数据
<select id="selectByParams" parameterType="map" resultType="map" >
select
role_id as roleId,
role_code as roleCode,
role_name as roleName,
status,
sys_create_user as sysCreateUser,
sys_create_time as sysCreateTime,
sys_update_user as sysUpdateUser,
sys_update_time as sysUpdateTime,
remarks
from
<include refid="Base_Table_Name" />
<where>
<trim prefix="(" suffix=")" suffixOverrides="and|or">
<if test="roleName != null and roleName != '' ">
<![CDATA[ role_name like CONCAT('%', #{roleName,jdbcType=VARCHAR}, '%') and ]]>
</if>
<if test="roleCode != null and roleCode != '' ">
<![CDATA[ role_code like CONCAT('%', #{roleCode,jdbcType=VARCHAR}, '%') and ]]>
</if>
<if test="status != null and status != '' ">
<![CDATA[ status = #{status,jdbcType=VARCHAR} and ]]>
</if>
</trim>
</where>
</select>
<trim> 标签的使用见https://blog.csdn.net/xiangwang2016
CDATA
术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。
在 XML 元素中,"<" 和 "&" 是非法的。
"<" 会产生错误,因为解析器会把该字符解释为新元素的开始。
"&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。
某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。
CDATA 部分中的所有内容都会被解析器忽略。
CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束:
如果文本包含了很多的"<"字符 <=和"&"字符——就象程序代码一样,那么最好把他们都放到CDATA部件中。
更多推荐
已为社区贡献1条内容
所有评论(0)