您的位置:首页 > 其它

几种mybatis 模糊查询条件写法

2018-02-02 11:28 411 查看
写法一

通过CONCAT()将两个字符串连接起来

@Ognl@isNotEmpty()函数是用来判断你传入的值是否不为空,不为空才在sql里添加这个查询条件,这是动态mybatis sql语句的写法,idcard就是你传入的值

<sql id="getAllWhere">
<if test="@Ognl@isNotEmpty(idcard)">AND idcard LIKE CONCAT(CONCAT('%', #{idcard}), '%') </if>
</sql>


写法二

通过自己添加%%

<sql id="getAllWhere">
<if test="@Ognl@isNotEmpty(username)">AND username LIKE '%${username}%'</if>
</sql>


写法三

通过java后台拼接再传入

java代码

给user对象的username设置传入的值(name),这个时候拼接了模糊查询的百分号

user.setUsername("%" + name + "%");


mybatis的sql文件写法

<!-- 这里就不能用@Ognl@isNotEmpty了,因为传过来的值不可能是空的,所有只能通过直接判断username是否等于%%来决定是否为空-->
<sql id="getAllWhere">
<if test="username != '%%'">AND username LIKE #{username}</if>
</sql>


引用

上面写的只是代码块,下面在具体语句引用代码块,用mybatis的include标签引用

<select id="count" resultType="long" parameterType="Map">
SELECT count(*) FROM real_name_validate WHERE 1=1
<include refid="getAllWhere" />
</select>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: