mybatisplus中likeleft和likeright方法有什么区别
时间: 2023-11-29 15:06:22 浏览: 268
MyBatis-Plus是一个基于MyBatis的增强工具,其中包含了一些常用的操作方法,包括likeLeft和likeRight方法。
likeLeft和likeRight方法都是用于构建SQL中的LIKE语句,区别在于匹配方式不同。
likeLeft方法会在搜索字符串后面添加一个“%”符号,表示从左边开始匹配,例如:
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.likeLeft("name", "张");
```
上述代码会生成一个类似于下面的SQL语句:
```sql
SELECT * FROM user WHERE name LIKE '张%';
```
而likeRight方法会在搜索字符串前面添加一个“%”符号,表示从右边开始匹配,例如:
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.likeRight("name", "三");
```
上述代码会生成一个类似于下面的SQL语句:
```sql
SELECT * FROM user WHERE name LIKE '%三';
```
因此,likeLeft和likeRight方法的区别在于匹配的方向不同,使用时需要根据实际需求选择合适的方法。
相关问题
mybatisplus 中likeleft和likeright是用来干嘛的
MyBatis-Plus 是 MyBatis 的增强工具,在 MyBatis 的基础上进行了简化和增强,其中包括了一些方便的查询构造器。
在 MyBatis-Plus 中,likeleft 和 likeright 分别用于构造 LIKE 查询的左右匹配模式。likeleft 表示左匹配,即在查询时将查询条件和模糊查询符号 % 组合在一起,放在查询条件的右边;likeright 表示右匹配,即将查询条件和模糊查询符号 % 组合在一起,放在查询条件的左边。
例如,假设我们要查询用户名中以“Tom”开头的用户,可以使用 likeleft 来实现:
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.likeLeft("username", "Tom");
List<User> userList = userMapper.selectList(wrapper);
```
这样会生成 SQL 语句:
```sql
SELECT * FROM user WHERE username LIKE 'Tom%'
```
同理,如果要查询用户名中以“Tom”结尾的用户,就可以使用 likeright:
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.likeRight("username", "Tom");
List<User> userList = userMapper.selectList(wrapper);
```
这样会生成 SQL 语句:
```sql
SELECT * FROM user WHERE username LIKE '%Tom'
```
使用 likeleft 和 likeright 可以方便地构造模糊查询条件,提高查询效率。
mybatisplus模糊查询方法
以下是MyBatis-plus模糊查询的方法示例:
1.使用QueryWrapper的like方法进行模糊查询
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like("name", "张"); // 查询name中包含“张”的记录
List<User> userList = userMapper.selectList(wrapper);
```
2.使用QueryWrapper的likeLeft或likeRight方法进行左模糊或右模糊查询
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.likeLeft("name", "张"); // 查询name以“张”开头的记录
List<User> userList = userMapper.selectList(wrapper);
wrapper = new QueryWrapper<>();
wrapper.likeRight("name", "三"); // 查询name以“三”结尾的记录
userList = userMapper.selectList(wrapper);
```
3.使用QueryWrapper的nested方法进行复杂的模糊查询
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.nested(i -> i.like("name", "张").or().like("name", "三")); // 查询name中包含“张”或“三”的记录
List<User> userList = userMapper.selectList(wrapper);
```
阅读全文