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 ...
随机推荐
- 27、Type关键字
1.是什么? type是go语法里额重要而且常用的关键字,type绝不只是对应于C/C++中的typeof.搞清楚type的使用,就容易理解Go语言中的核心概念struct.interface.函数等 ...
- SpringMVC中资源路径映射本地文件图片
SpringMVC中资源路径映射本地文件图片 import org.springframework.context.annotation.Configuration; import org.sprin ...
- 牛客刷Java记录第四天
第一题,单选题 class Car extends Vehicle { public static void main (String[] args) { new Car(). run(); } pr ...
- beanshell导入java文件
beanshell导入java文件 beanshell可以读取class格式的文件 步骤: a.添加BeanShell预处理程序 b.请求调用 beanshell可以读取java格式的文件 步骤: a ...
- Python——第二章:查找和判断
查找.find() s = "你好啊. 我叫周润发" ret = s.find("周润发") # 返回是7,代表该字符串出现在7号位置,从0开始计数 print ...
- Keepass调用Xshell、SecureCRT、RDP、Putty的方法(一劳永逸版)
依次点击"工具"--"选项"--"集成"--"网址替代"--"添加"--添加"方案&quo ...
- Havoc插件编写
配置文件的webhook支持discord,所以尝试使用钉钉和企业微信. WebHook { Discord { Url = "" AvatarUrl = "&quo ...
- RocketMQ 的基本使用
RocketMQwiki是一个分布式消息和流数据平台,具有低延迟.高性能.高可靠性.万亿级容量和灵活的可扩展性.RocketMQ是2012年阿里巴巴开源的第三代分布式消息中间件,2016年11月21日 ...
- Boost程序库完全开发指南:1.2-C++基础知识点梳理
主要整理了N多年前(2010年)学习C++的时候开始总结的知识点,好长时间不写C++代码了,现在LLM量化和推理需要重新学习C++编程,看来出来混迟早要还的. 1.const_cast <n ...
- Java 将Excel工作簿按工作表拆分为多个文档
本文介绍在Java代码环境中如何将Excel工作簿按工作表拆分为多个Excel文档,即:把Excel工作簿中的每一个工作表单独保存为一个Excel工作簿文件. 思路及方法:通过将源文档中的每个工作表通 ...