mybatis 模糊查询 写法
时间: 2024-10-13 21:11:02 浏览: 97
MyBatis 中模糊查询通常通过动态 SQL 来实现,尤其是配合 `LIKE`、`ILIKE` (针对某些支持 case-insensitive 的数据库) 或 `%`、 `_` 运算符来完成。以下是几种常见的模糊查询写法:
1. 使用 `LIKE` 和 `%` 匹配任意字符序列:
```xml
<select id="selectByKeyword" parameterType="map" resultType="YourResultClass">
SELECT * FROM your_table WHERE column_name LIKE CONCAT('%', #{keyword}, '%')
</select>
```
这里的 `#{keyword}` 将会被传入的参数替换。
2. 使用 `ILIKE` 对大小写不敏感的搜索:
```xml
<select id="selectByInsensitiveKeyword" parameterType="map" resultType="YourResultClass">
SELECT * FROM your_table WHERE column_name ILIKE CONCAT('%', #{keyword}, '%')
</select>
```
3. 使用 `_` 匹配单个字符:
```xml
<select id="selectBySingleChar" parameterType="map" resultType="YourResultClass">
SELECT * FROM your_table WHERE column_name LIKE CONCAT(#{prefix}, '_', #{suffix})
</select>
```
这里的前缀 (`#{prefix}`) 和后缀 (`#{suffix}`) 分别代表开始和结束位置的一个字符。
4. 使用 MyBatis 自带的 `模糊查询插件`(如 MyBatis-Paginator-Plus 或 Ibatis Plus)简化写法:
```java
List<YourResultClass> findByLike(String keyword, PageHelper page);
```
这里 `findByLike` 是自定义的查询方法名,`PageHelper` 可以帮助处理分页和过滤。
阅读全文