mybatis模糊查询写法
时间: 2023-11-04 18:06:03 浏览: 242
MyBatis模糊查询可以使用LIKE关键字,具体写法如下:
1. 在Mapper.xml文件中编写SQL语句:
```
<select id="selectByKeyword" parameterType="java.lang.String" resultType="YourResultType">
SELECT * FROM YourTable WHERE YourColumn LIKE CONCAT('%', #{keyword}, '%')
</select>
```
2. 在Mapper接口中定义方法:
```
List<YourResultType> selectByKeyword(String keyword);
```
3. 在Java代码中调用:
```
List<YourResultType> resultList = mapper.selectByKeyword("your keyword");
```
其中,#{keyword}表示传入的模糊查询关键字,CONCAT函数用于将%和关键字拼接起来,实现模糊查询。注意,模糊查询可能会影响查询效率,建议合理使用。
相关问题
mybatis 模糊查询 写法
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` 可以帮助处理分页和过滤。
Mybatis中模糊查询like语句写法
Mybatis中模糊查询like语句可以使用以下两种写法:
1. 使用${}占位符方式拼接SQL语句:
```xml
<select id="getUserListByName" resultType="User">
SELECT * FROM user WHERE name like '%${name}%'
</select>
```
2. 使用#{}占位符方式传入参数:
```xml
<select id="getUserListByName" resultType="User">
SELECT * FROM user WHERE name like CONCAT('%',#{name},'%')
</select>
```
其中,第二种写法更加安全可靠,建议使用。
阅读全文