当前位置: 首页 > article >正文

mybatisPlus基础

四个模块

在这里插入图片描述

入门案例:改造

原本的mybatis:使用mapper接口mapper.xml对应

在这里插入图片描述

改写之后可以省去 mapper.xml ,BaseMapper中有很多 基本方法提供使用

1. 引入mybatis-plus的 启动器依赖

在这里插入图片描述

<!--   注释掉原本的mybatis的依赖     -->
<!--        <dependency>-->
<!--            <groupId>org.mybatis.spring.boot</groupId>-->
<!--            <artifactId>mybatis-spring-boot-starter</artifactId>-->
<!--            <version>2.3.1</version>-->
<!--        </dependency>-->
<!--    重新引入mybatis-plus的依赖    -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.7</version>
        </dependency>

自定义mapper继承BaseMapper

在这里插入图片描述

常见的基础方法

在这里插入图片描述

UserMapper中实际没有任何方法,但是可以调用BaseMapper中基本方法

public interface UserMapper extends BaseMapper<User> {
}

测试类

package com.itheima.mp.mapper;

import com.itheima.mp.domain.po.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.time.LocalDateTime;
import java.util.List;

@SpringBootTest
class UserMapperTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    void testInsert() {
        User user = new User();
        user.setId(5L);
        user.setUsername("Lucy");
        user.setPassword("123");
        user.setPhone("18688990011");
        user.setBalance(200);
        user.setInfo("{\"age\": 24, \"intro\": \"英文老师\", \"gender\": \"female\"}");
        user.setCreateTime(LocalDateTime.now());
        user.setUpdateTime(LocalDateTime.now());
        userMapper.insert(user);
    }

    @Test
    void testSelectById() {
        User user = userMapper.selectById(5L);
        System.out.println("user = " + user);
    }


    @Test
    void testQueryByIds() {
        List<User> users = userMapper.selectBatchIds(List.of(1L, 2L, 3L, 4L));
        users.forEach(System.out::println);
    }

    @Test
    void testUpdateById() {
        User user = new User();
        user.setId(5L);
        user.setBalance(20000);
        userMapper.updateById(user);
    }

    @Test
    void testDeleteUser() {
        userMapper.deleteById(5L);
    }
}

MP的实体类映射原理


http://www.kler.cn/a/461098.html

相关文章:

  • 设计模式 创建型 原型模式(Prototype Pattern)与 常见技术框架应用 解析
  • AcWing练习题:差
  • 前端路由 Hash 和 History 模式原理对比区别
  • 低代码开发:开启企业数智化转型“快捷键”
  • QT---------自定义插件和库
  • 算法题(23):只出现一次的数字
  • 服务器数据恢复—磁盘阵列中多块硬盘离线导致存储中数据无法访问的数据恢复
  • SpringMVC中的拦截器
  • MVC 架构学习笔记
  • CUTLASS:高性能 CUDA 线性代数模板库详解
  • 过圆外一点与圆相切的直线
  • 表单验证不生效
  • 前端Monorepo实践分享
  • GXUOJ-算法-第四次作业(圆排列、连续邮资、n皇后、符号三角形)
  • 「下载」智慧文旅运营综合平台解决方案:整体架构,核心功能设计
  • Rabbitmq追问2
  • UniApp 组件的深度运用
  • 【时时三省】(C语言基础)动态内存函数calloc
  • 活动安排.
  • nginx-nginx的缓存集成
  • Tube Qualify弯管测量系统在汽车管路三维检测中的应用
  • 08.VSCODE:内嵌MSYS2及三方库UTF8-CPP的实战
  • Spring 框架——@Async 注解
  • 可以突破合同相对性原则,不包括借用资质及多层转包和违法分包关系中的实际施工人
  • 【华为OD-E卷-统计匹配的二元组个数 100分(python、java、c++、js、c)】
  • 大语言模型遇上寻路算法:LLM-A*如何让路径规划效率提升50%?