在使用MyBatis-plus的时候,一些基础的增删改查可以不用再自己写sql了:
1
2
3
|
public interface UserDao extends BaseMapper<FykUser>{
}
|
就这样,就可以实现user表的增删改查了。
使用userDao.selectList(queryWrapper)方法,就可以查询出一个用户列表。
如果需要模糊查询,代码如下:
1
2
3
4
5
|
//条件封装
QueryWrapper<FykUser> queryWrapper = new QueryWrapper<>();
queryWrapper.like(StringUtils.isNotBlank(user.getName()), "NAME" , user.getName());
queryWrapper.like(user.getEnable() != null , "ENABLE" , user.getEnable());
List<FykUser> userList = userDao.selectList(queryWrapper);
|
也就是说,调用queryWrapper的like方法就可以。
这里,like方法有三个参数:
- 第一个参数:该参数是一个布尔类型,只有该参数是true时,才将like条件拼接到sql中;本例中,如果name字段不为空,则拼接name字段的like查询条件;
- 第二个参数:该参数是数据库中的字段名;
- 第三个参数:该参数值字段值;
需要说明的是,这里的like查询是使用的默认方式,也就是说在查询条件的左右两边都有%:NAME = ‘%王%';
如果只需要在左边或者右边拼接%,可以使用likeLeft或者likeRight方法。
其他
在QueryWrapper类中,可以看到,还有很多条件查询的方法,诸如ge、le、lt、between等之类的方法,他们的传参方式都和上面介绍的差不多。
示例
模糊查询方法一
control
1
2
3
4
5
6
7
8
9
10
11
12
|
//模糊查询方法一
@RequestMapping (value = "/testTask" , method = RequestMethod.GET)
public ResponseObj<List<UserInfo>> testTask( @RequestParam ( "name" ) String name) {
List<UserInfo> userInfos = userInfoMapper.selectList( new EntityWrapper<>(userInfo).like( "firstname" , name)
.or().like( "lastname" , name));
return new ResponseObj<>(userInfos, null );
}
|
new EntityWrapper<>(userInfo).like(“firstname”, name).or().like(“lastname”, name)
userInfo是需要模糊查询的表对应的model,firstname和lastname则是需要模糊查询的字段,or()是指两个条件或者的关系,在sql中执行的语句是:
1
|
SELECT * FROM users WHERE (firstname LIKE '%海%' OR lastname LIKE '%海%' )
|
这里selectList方法是mybatis-plus中的
模糊查询方法二
这个是通过传入对象进行模糊查询
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
//模糊查询方法二
@RequestMapping (value = "/testTask1" , method = RequestMethod.GET)
public ResponseObj<List<TimeEntries>> testTask1( @ModelAttribute UserInfo userInfo) {
List<UserInfo> list = userInfoMapper.list( new EntityWrapper<>(userInfo));
List<TimeEntries> listAll = new ArrayList<>();
if (list != null && list.size() > 0 ) {
for (UserInfo info : list) {
List<TimeEntries> list1 = timeEntriesMapper.list(info.getId());
listAll.addAll(list1);
}
}
System.out.println(listAll.size());
// 按userId升序、username降序、birthDate升序排序
String[] sortNameArr = { "spentOn" , "fullName" , "hoursSum" };
boolean [] isAscArr = { false , true , true };
ListUtils.sort(listAll, sortNameArr, isAscArr);
System.out.println( "\\n--------按按userId升序、username降序、birthDate升序排序(如果userId相同,则按照username降序," +
"如果username相同,则按照birthDate升序)------------------" );
return new ResponseObj<>(listAll, null );
|
UserInfoMapper
1
2
3
4
5
|
@Mapper
public interface UserInfoMapper extends BaseMapper<UserInfo> {
List<UserInfo> list( @Param ( "ew" ) Wrapper<UserInfo> wrapper);
}
|
UserInfoMapper.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
< select id = "list" resultType = "com.cicdi.servertemplate.modules.work.model.UserInfo" >
SELECT
*
FROM
users
WHERE
1=1
< if test = "ew!=null" >
< if test = "ew.entity!=null" >
< if test = "ew.entity.name!=null" >
AND CONCAT(lastname, firstname) LIKE CONCAT('%',#{ew.entity.name},'%')
</ if >
</ if >
< if test = "ew.sqlSegment!=null" >
${ew.sqlSegment}
</ if >
</ if >
</ select >
|
到此这篇关于MyBatis-plus 模糊查询的使用的文章就介绍到这了,更多相关MyBatis-plus 模糊查询内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!
原文链接:https://blog.csdn.net/weixin_42590334/article/details/91874630
相关文章
- 64M VPS建站:能否支持高流量网站运行? 2025-06-10
- 64M VPS建站:怎样选择合适的域名和SSL证书? 2025-06-10
- 64M VPS建站:怎样优化以提高网站加载速度? 2025-06-10
- 64M VPS建站:是否适合初学者操作和管理? 2025-06-10
- ASP.NET自助建站系统中的用户注册和登录功能定制方法 2025-06-10
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
-
2025-06-04 71
-
2025-06-04 77
-
2025-05-27 88
-
2025-06-04 17
-
2025-05-29 89