网络

教育改变生活

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 250|回复: 0
打印 上一主题 下一主题

MyBatis Like 模糊查询

[复制链接]

397

主题

398

帖子

1625

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1625
跳转到指定楼层
楼主
发表于 4 天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MyBatis Like 模糊查询有几种方式
方式1:$ 这种方式,简单,但是无法防止SQL注入,所以不推荐使用
   LIKE  '%${name}%'
方式2:#
    LIKE"%"#{name}"%"
有兴趣的可以看一下:Mybatis 中#{} 和${}区别
方式3:字符串拼接
AND name LIKECONCAT(CONCAT('%',#{name},'%'))
方式4:bind标签
<select id="searchStudents" resultType="com.example.entity.StudentEntity"  parameterType="com.example.entity.StudentEntity">  <bind name="pattern1" value="'%' + _parameter.name + '%'" />  
<bind name="pattern2" value="'%' + _parameter.address + '%'" />  
SELECT * FROM test_student  
<where>   
<if test="age != null and age != '' and compare != null and compare != ''">   
age    ${compare}    #{age}   
</if>   
<if test="name != null and name != ''">   
AND name LIKE #{pattern1}   
</if>   
<if test="address != null and address != ''">   
AND address LIKE #{pattern2}   
</if>  
</where>  
ORDER BY id
</select>
方式5:java代码里写
param.setUsername("%CD%");在 java 代码中传参的时候直接写上
<if test="username!=null"> AND username LIKE #{username}</if>
然后 mapper 里面直接写 #{} 就可以了



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

WEB前端

QQ|手机版|小黑屋|金桨网|助学堂  咨询请联系站长。

GMT+8, 2024-10-22 18:34 , Processed in 0.033685 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表