Mybatis常用模糊查询方法
时间: 2024-01-16 16:05:17 浏览: 12
Mybatis提供了几种模糊查询的方法,常用的有以下几种:
1.使用LIKE关键字进行模糊查询
```
<select id="selectUserByName" parameterType="java.lang.String" resultType="User">
select * from user where name like concat('%',#{name},'%')
</select>
```
2.使用CONCAT函数进行模糊查询
```
<select id="selectUserByName" parameterType="java.lang.String" resultType="User">
select * from user where name like #{name}
</select>
```
3.使用正则表达式进行模糊查询
```
<select id="selectUserByName" parameterType="java.lang.String" resultType="User">
select * from user where name regexp #{name}
</select>
```
其中,第一种方法是最常用的,也是最简单的。第二种方法使用了CONCAT函数,可以在不同的字段中进行模糊查询。第三种方法使用了正则表达式,可以进行更加复杂的模糊查询,但是相对来说比较麻烦。
相关问题
mybatis plus 模糊查询
MyBatis Plus提供了多种方式来实现模糊查询,下面是一些常用的方法:
1. 使用`like`方法:可以通过`like`方法实现模糊查询。示例代码如下:
```java
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("username", "keyWord");
List<User> userList = userMapper.selectList(queryWrapper);
```
这里的`username`是数据库表中的字段名,`keyWord`是要查询的关键字。
2. 使用`likeLeft`或`likeRight`方法:这两个方法分别表示左模糊查询和右模糊查询。示例代码如下:
```java
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.likeLeft("username", "keyWord");
// 或者
// queryWrapper.likeRight("username", "keyWord");
List<User> userList = userMapper.selectList(queryWrapper);
```
这里的`username`、`keyWord`和前面的示例相同,只是使用了不同的方法。
3. 使用`like`方法实现多字段模糊查询:如果要在多个字段中进行模糊查询,可以使用`or`方法结合`like`方法。示例代码如下:
```java
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("username", "keyWord").or().like("email", "keyWord");
List<User> userList = userMapper.selectList(queryWrapper);
```
这里的`username`和`email`分别是要查询的字段名。
这些是常用的模糊查询方法,你可以根据自己的需要选择合适的方法。如果还有其他问题,请继续提问。
Mybatis模糊查询
Mybatis是一种Java持久化框架,它提供了一种简单而强大的方式来进行数据库操作。在Mybatis中,模糊查询可以通过使用通配符或者正则表达式来实现。
通配符查询是指使用特殊字符来代替一个或多个字符,常用的通配符有:
- %:表示任意字符出现任意次数
- _:表示任意单个字符
在Mybatis中,可以使用LIKE关键字结合通配符来进行模糊查询。例如,如果要查询名字以"张"开头的用户,可以使用以下语句:
```
SELECT * FROM user WHERE name LIKE '张%'
```
这样就可以查询到名字以"张"开头的用户。
另外,Mybatis还支持使用正则表达式进行模糊查询。可以使用MySQL的REGEXP关键字来实现。例如,如果要查询名字中包含"张"的用户,可以使用以下语句:
```
SELECT * FROM user WHERE name REGEXP '张'
```
这样就可以查询到名字中包含"张"的用户。