mybatis模糊查询带参数
时间: 2023-08-15 19:08:07 浏览: 135
Mybatis中有两种常用的模糊查询带参数的方法。第一种方法是使用like concat函数,它可以通过连接字符串的方式实现模糊查询。具体使用方式如下:在SQL语句中使用concat函数连接三个参数,分别是通配符%,传入的参数,和再次使用通配符%。例如:
```
<if test="blockPushLog.blockName!=null and blockPushLog.blockName!=''">
and b.BLOCK_NAME like CONCAT('%',#{blockPushLog.blockName},'%')
</if>
```
这种方法的缺点是在某些数据库中可能不支持多个参数,而且存在SQL注入的风险。
第二种方法是使用bind函数,它可以将模糊查询的关键字放在mapper文件中,只将需要匹配的关键字作为参数传入。具体使用方式如下:在SQL语句中使用bind函数定义一个自定义名称和传入的参数,然后在like语句中使用这个自定义名称。例如:
```
<if test="blockPushLog.blockSearch!=null and blockPushLog.blockSearch!=''">
<bind name="blockNameLike" value="'%'+blockPushLog.blockSearch+'%'"/>
and b.BLOCK_NAME like #{blockNameLike}
</if>
```
这种方法的优点是兼容性强,可以预防SQL注入,因此更安全。
综上所述,第二种方法更推荐使用,因为它更具有兼容性和安全性。同时,第二种方法也更加方便,可以将匹配符放在mapper文件中,提高代码的可读性和维护性。
#### 引用[.reference_title]
- *1* *2* [mybatis之模糊查询方法](https://blog.csdn.net/u013013790/article/details/122052896)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [【SSM】09-Mybatis实现模糊查询的两种方法](https://blog.csdn.net/m0_50964976/article/details/122509148)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文