- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章MyBatis-plus 模糊查询的使用由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
在使用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方法有三个参数:
需要说明的是,这里的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 模糊查询内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://blog.csdn.net/weixin_42590334/article/details/91874630 。
最后此篇关于MyBatis-plus 模糊查询的使用的文章就讲到这里了,如果你想了解更多关于MyBatis-plus 模糊查询的使用的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
1.概述 转载:MyBatis 二级缓存全详解 上一篇文章中我们介绍到了 MyBatis 一级缓存其实就是 SqlSession 级别的缓存,什么是 SqlSession 级别的缓存呢?一级缓存的本质
1.概述 转载:核心配置综述之StatementHandler 2.MyBatis 四大组件之StatementHandler StatementHandler 是四大组件中最重要的一个对象,负责操作
1.概述 转载:MyBatis 启动流程 MyBatis 是第一个支持自定义 SQL、存储过程和高级映射的类持久框架。MyBatis 消除了大部分 JDBC 的样板代码、手动设置参数以及检索结果。My
1.概述 转载:MyBatis 基础搭建及架构概述 2.MyBatis 是什么? MyBatis是第一个支持自定义SQL、存储过程和高级映射的类持久框架。MyBatis消除了大部分JDBC的样板代码、
1.概述 转载:核心配置综述之 ParameterHandler MyBatis 四大核心组件我们已经了解到了两种,一个是 Executor ,它是MyBatis 解析SQL请求首先会经过的第一道关卡
1.概述 转载:核心配置综述之 ResultSetHandler 我们之前介绍过了MyBatis 四大核心配置之 Executor、StatementHandler、 ParameterHandler
如果我使用mybatis,我可以很容易地得到更新的行数,就像 update table set desc = 'xxx' where name = ? 但是,如果我想获取更新的行数,而不是计数,我该如
如何在MyBatis 3中使用小于等于 SELECT * FROM( SELECT * FROM TABLE1 WHERE COL1 =#{COL1,jdbc
我将 mybatis3.0.6 与 java 一起使用 哪个性能更好? [select id="getData" parameterType="Integer" resultType="Integer
我无法在 mybatis 中使用动态排序类型创建 SQL,如下例 select user_profile.user_profile_id, user_profile.first_name
这是一个流行的例子。 insert into ACCOUNT ( ACC_ID, ACC_FIRST_NAME, ACC_LAST_NAME, ACC_EMAIL )values (
我下载了MyBatis,文件夹中有一个mybatis-3.0.4-javadoc.jar,我解压并打开它,但它几乎是空的。 哪里可以找到MyBatis的API文档? 最佳答案 http://repo1
我正在尝试为 ArrayList 编写类型处理程序,但这给了我错误,任何人都可以帮助我。 我想将 ArrayList 作为 VARCHAR 存储在数据库中并将其检索为 ArrayList。 packa
目录 依赖 配置 CodeGenerator mybatis-plus-generator + clickhouse 自动生成代码 依赖
目录 三者实现对比 使用fluent mybatis 来实现上面的功能 换成mybatis原生实现效果 换成mybatis plus
例如,我有查询从员工中选择 ID、姓名、年龄、地址,而不是拥有员工对象列表。我希望有一个 map 列表,如 list{ map{ ("id", 123), ("name","jac
我在使 MyBatis (3.4.6) 工作时遇到一些麻烦。 我已将 mybatis-config.xml 文件放置在项目的 src/main/resources 文件夹中,但是当我运行单元测试时,出
我现在使用 Mybatis 和 spring-boot。我没有添加mybatis-config.xml。我根据说明通过 application.properties 为数据源和 mybatis 进行所
这是我的第一篇文章,用我糟糕的英语...... 我使用的是MyBatis3.0 在查询中,我使用 SqlBuilder 的方法如下: public class DataStatisticSqlBuil
主题:MyBatis:Boolean Paraeter:MyBatis 正在使用 Getter 内容: 大家好, 我一直在寻找解决我近乎简单的 MyBatis 问题的方法: 给定代码(仅必要部分):
我是一名优秀的程序员,十分优秀!