mybatis plus 中增删改查及Wrapper的使用
本文为博主原创,未经允许不得转载:
mybatis plus 通过封装 baseMapper 以及 ServiceImpl ,实现对数据库的增删改查操作,baseMapper 是我们通常所说的 dao 层或 mapper 层,
ServiceImpl 是我们通常所说的 业务层,其内部标注了事务回滚,以及它内部的实现很多也是通过 baseMapper 进行实现的。
IService 依赖于 Spring 容器,而 BaseMapper 不依赖我们在应用的时候
根据自己的便捷性,选择合适的方法即可。 前面的博客中已经搭建了 spring boot + mybaits plus 的框架,其中定义了 UserMapper 和 UserServiceImpl ,
代码及博客的链接如下:
搭建 spring boot + mybatis plus 项目框架并进行调试
1. 查询:
封装查询参数的Wrapper 有两种方式,效果是等同的;
QueryWrapper<User> wrapper = new QueryWrapper<>(); 与 Wrappers.<User>query().lambda() 是相同的
@Slf4j
@SpringBootTest
class DemoApplicationTests { @Autowired
private UserMapper userMapper; @Autowired
private UserService userService; @Test
void query() {
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "2");
// 1.根据QueryWrapper 进行条件查询
User user = userMapper.selectOne(wrapper);
// 2.使用 Wrappers 的lamda表达式进行查询
userService.list(Wrappers.<User>query().lambda().eq(User::getName,"test")); Map<String,Object> paramsMap = new HashMap<>();
paramsMap.put("name","test");
// 3.使用map封装查询参数,查询列表
List<User> users= (List<User>) userService.listByMap(paramsMap); // 4.查询总数
int count = userService.count();
// 5.根据条件查询总数
int count2 = userService.count(Wrappers.<User>query().lambda().eq(User::getName,"test"));
} }
2。修改
@Test
void update() {
User user = new User();
user.setAge(23);
user.setEmail("344");
user.setName("test333");
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id","1");
// 1.user 中封装修改的属性值, updateWrapper 中封装修改的条件参数值
userService.update(user,updateWrapper); // 2.根据条件修改对应的参数属性值
userService.update(Wrappers.<User>update().lambda().set(User::getName, "2").eq(User::getAge, 23));
// 3.判断参数是否为空,并进行修改
String name = "name";
userService.update(Wrappers.<User>update().lambda().set(StringUtils.isNotBlank(name),User::getName, name).eq(User::getAge, 23));
}
3.新增
@Test
void save() {
User user = new User();
user.setAge(23);
user.setEmail("344");
user.setName("test");
// 1.使用service新增
userService.save(user);
// 2.使用mapper 新增
userMapper.insert(user);
}
4.删除
@Test
void delete() {
// 根据条件删除
userService.remove(Wrappers.<User>query().lambda().eq(User::getAge, 3));
}
5.mybatis plus 封装的函数列表:

mybatis plus 中增删改查及Wrapper的使用的更多相关文章
- Spring Boot 使用Mybatis注解开发增删改查
使用逆向工程是遇到的错误 错误描述 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): c ...
- Mybatis实现简单增删改查
Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...
- MyBatis简单的增删改查以及简单的分页查询实现
MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...
- oracle触发器中增删改查本表
oracle触发器中增删改查本表 (1)只有before insert触发器中才可以查询或更新本表 create or replace trigger tri_test_ins before inse ...
- Mybatis入门之增删改查
Mybatis入门之增删改查 Mybatis如果操作成功,但是数据库没有更新那就是得添加事务了.(增删改都要添加)----- 浪费了我40多分钟怀疑人生后来去百度... 导入包: 引入配置文件: sq ...
- 【ASP.NET MVC系列】浅谈jqGrid 在ASP.NET MVC中增删改查
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- MyBatis -- 对表进行增删改查(基于注解的实现)
1.MyBatis对数据库表进行增/删/改/查 前一篇使用基于XML的方式实现对数据库的增/删/改/查 以下我们来看怎么使用注解的方式实现对数据库表的增/删/改/查 1.1 首先须要定义映射sql的 ...
- SpringMVC,MyBatis商品的增删改查
一.需求 商品的增删改查 二.工程结构 三.代码 1.Mapper层 (1) ItemsMapperCustom.java package com.tony.ssm.mapper; import ja ...
- 基于SSM之Mybatis接口实现增删改查(CRUD)功能
国庆已过,要安心的学习了. SSM框架以前做过基本的了解,相比于ssh它更为优秀. 现基于JAVA应用程序用Mybatis接口简单的实现CRUD功能: 基本结构: (PS:其实这个就是用的Mapper ...
- MyBatis入门2_增删改查+数据库字段和实体字段不一致情况
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! 当数据库字段和实体bean中属性不一致时 之前数据库P ...
随机推荐
- 江西财经大学第一届程序设计竞赛 G题小Q的口袋校园
题目链接:https://www.nowcoder.com/acm/contest/115/G 解题思路:题解就一份代码,贪心的思想.先按开始时间进行排序. 然后不断贪心获得happy[ j ]的最大 ...
- Linux服务器安装好Jenkins,IP+端口无法访问的问题排查
1.是否已安装jdk,命令:java -version 2.查看Jenkins进程是否还在,命令 ps -ef|grep jenkins 3.查看8080(Jenkins默认)端口号是否开放,命令:f ...
- HDU 6203 ping ping ping 最近公共祖先 树状数组
原题链接 题意 给我们一棵n+1节点,n条边的树,然后给我们p条路径(每条路径给出两个端点).我们需要从树上选出一些点,使得每条路径都至少包含我们选出的一个点.求最少选多少点. 思路 以1为根,我们可 ...
- Flutter Getx 路由管理
GetX 为我们封装了 Navigation ,无需 context 可进行跳转,使用 GetX 进行路由跳转非常的简单, 只需要调用 Get.to() 即可进行路由跳转, GetX 路由跳转简化了跳 ...
- Swagger系列:Spring Boot 2.x集成Spring Doc(Swagger 3.0)
目录 一.简介 1.SpringFox工具(不推荐) 2.SpringDoc工具(推荐) 二.集成 1.环境 1. 引入Maven依赖 2.配置SpringDocConfig(配置类方式) 3.配置S ...
- gitlab jenkins 安装笔记
gitlab gitlab ce是社区版本,ee是企业版本,称为gitee. https://packages.gitlab.com/gitlab/gitlab-ce/install 通过运行curl ...
- 异步、多线程、Await/Async、Task
异步多线程经常被拿来说事,网上文章也是多如牛毛,我也是停留在很菜的水平,痛下决心好好"恶补"一下这块知识. 还是先放两个官方文档压压惊:使用 Async 和 Await 的异步编程 ...
- EDS从小白到专家丨打造你的专属“数据物流”系统
"数据快递"如何支撑便捷就医?本期让我们来了解如何使用EDS打造专属的"数据物流"系统...... 本文分享自华为云社区<[EDS从小白到专家]第2期-E ...
- 云图说丨应用宕机怎么办?MAS帮您实现业务无缝切换
摘要: 多云高可用服务(Multi-cloud high Availability Service,简称MAS)源自华为消费者多云应用高可用方案,提供从流量入口.数据到应用层的端到端的业务故障切换及容 ...
- update 没有索引导致业务崩了,老板骂了一个小时
摘要:有天,一朋友在线上执行一条 update 语句修改数据库数据的时候,where 条件没有带上索引,导致业务直接崩了,被老板教训了一波. 本文分享自华为云社区<update 没有索引,会锁全 ...