mybatis plus 中增删改查及Wrapper的使用

简介: 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

目录
相关文章
|
4月前
|
SQL
条件构造器,MybatisPlus支持各种复杂的where条件,其实就是Wrapper,eq是等于的意思,相当于等于那个数值,ne就是不等于,gt大于的意思,ge大于等于,QueryWrapper是做
条件构造器,MybatisPlus支持各种复杂的where条件,其实就是Wrapper,eq是等于的意思,相当于等于那个数值,ne就是不等于,gt大于的意思,ge大于等于,QueryWrapper是做
|
5月前
|
SQL 存储 Java
基于MyBatis的增删改查操作
基于MyBatis的增删改查操作
42 1
|
2月前
|
SQL XML Java
mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数
文章介绍了MyBatis的简单增删改查操作,包括创建数据表、实体类、配置文件、Mapper接口及其XML文件,并解释了`#{}`预编译参数和`@Param`注解的使用。同时,还涵盖了resultType与resultMap的区别,并提供了完整的代码实例和测试用例。
mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数
|
5月前
|
SQL 存储 Java
基于MyBatis的增删改查的基础操作
基于MyBatis的增删改查的基础操作
37 0
|
2月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
44 1
|
4月前
|
Java 数据库连接 测试技术
mybatis plus 获取新增实体的主键
mybatis plus 获取新增实体的主键
143 8
|
4月前
|
Java 数据库连接 数据库
mybatis plus 更新值为null的字段
mybatis plus 更新值为null的字段
57 7
|
4月前
|
Java 数据库连接 Spring
搭建 spring boot + mybatis plus 项目框架并进行调试
搭建 spring boot + mybatis plus 项目框架并进行调试
93 4
|
4月前
|
SQL Java 数据库连接
idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
91 3
|
4月前
|
算法 Java 数据库连接
mybatis plus 主键策略
mybatis plus 主键策略
56 2