更便捷的使用MyBatis--->MyBatisPlus

news/2025/3/14 22:24:12/

什么是MyBatisPlus?

为了简化crud代码而产生的一款增强工具 只做增强不做改变。 最大的好处就是能简化开发的代码 性能方面也是非常高效的。总而言之 只要我们使用MyBatis的话 我们用MyBatisplus只会更加方便 因为他把我们平常做的重复化的工作删除了。 所以 我们掌握mp后就能更加便捷的进行代码的开发。

快速入门

我们springboot项目里面只需要直接导入依赖启动器就好了 因为我们的mp工具是在MyBatis上面增强的 所以我们导入mp就ok了

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.0</version></dependency>

直接在pom文件里面加入依赖就好了 ,我们新建一个mapper包,然后创建一个user类用来直观的感受一下mp的作用

先创建一个user类

package com.mybatis_plusstudy.pyyyyy.pojo;import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;上面三个是lombok的注解需要导入依赖后使用 也可以不导入直接自己写
分别是getset方法,还有构造方法。
第四个注解就是mp的注解了 这表示的你这个类在数据库里面对应的表是叫什么名字。@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("theuser")
public class User {private Long id;private String name;private Integer age;private String email;}

创建一个Mapper

package com.mybatis_plusstudy.pyyyyy.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mybatis_plusstudy.pyyyyy.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;@Mapper
@Repository
public interface UserMapper extends BaseMapper<User> {}

mapper的创建和我们之前使用MyBatis创建的方法基本相同 但是这里需要继承这个basemapper的类 ,这就是mp的实现之处 他的功能都是通过这个类来进行实现的 可以想象成你把这个Mapper交给mp管理了。
然后就是需要将这个Mapper文件让springboot扫描到 所以去启动类上面加注解 扫描这个Mapper文件
在这里插入图片描述
然后再去数据库里面创建一张user表 这个表就是我们user专属的表 增删查改都会在这张表里面进行。
在这里插入图片描述

DROP TABLE IF EXISTS user;CREATE TABLE user
(id BIGINT(20) NOT NULL COMMENT '主键ID',name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',age INT(11) NULL DEFAULT NULL COMMENT '年龄',email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',PRIMARY KEY (id)
);DELETE FROM user;INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

好的 现在需要通过jdbc来连接到这个数据库 先导入mysql的依赖

 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency>

然后配置一下yaml文件 在里面加入 你的mysql配置。
在这里插入图片描述
这样 准备工作算是完成了 我们创建一个测试类 来感受一下

package com.mybatis_plusstudy.pyyyyy.mapper;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.mybatis_plusstudy.pyyyyy.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.sql.Wrapper;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import static org.junit.jupiter.api.Assertions.*;
@SpringBootTest
class  UserMapperTest {@AutowiredUserMapper userMapper;@Testvoid userTest(){
//        增加User user1 = new User((long) 9,"ljac",28,"584401a071@qq.com");userMapper.insert(user1);
//         删除QueryWrapper<User> userQueryWrapper1 = new QueryWrapper<User>();userQueryWrapper1.eq("name","Jack");userMapper.delete(userQueryWrapper1);
//        查找List<User> users = userMapper.selectList(null);for (User user:users){System.out.println(user.toString());}
//       修改User user2 = new User((long) 3,"san",25,"123456@qq.com");QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();userQueryWrapper.eq("id","3");userMapper.update(user2,userQueryWrapper);}
}

修改之前的表
在这里插入图片描述
修改之后的表
在这里插入图片描述
可以看到 我们没有写 sql语句 但是我们还是能对这个数据库进行操作 这就是mp的核心功能。再来看到代码中间的wrapper这个可以说是最为核心的工具了 ,他是负责包装的一个类我们通过一些条件 来指定让我们的操作作用于什么样的数据 比如我上面的代码里面 我希望 删除name=“jack” 的人 我就需要创建一个wrapper 然后将我希望的 name=jack 用他的要求 eq(“name”,“jack”)表示出来 ,由于这里是链式编程 因此我们可以在后面更无数的要求。这样 我们再调用我们wrapper的功能 直接将我们的要求 也就是这个包装交给他 就能精确的操作数据库。
在这里插入图片描述
这个是类图 绿色的是抽象类。蓝色的是普通的类。
一些常用的wrapper的方法。
在这里插入图片描述
感谢看到这里


http://www.ppmy.cn/news/792269.html

相关文章

mybatis-plus的generator配置

下载myBatisX插件,用mapper和xml方法的跳转 <!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration>…

Mybatis | 06 Mybatis多表查询**

Mybatis | 06 Mybatis多表查询 Mybatis多表查询1. 四种表的关系1.1 一对多关系1.2 多对一关系1.3 一对一关系1.4 多对多关系 2. 示例&#xff1a;用户和账户的查询2.1 相关准备2.1.1 数据库2.1.2 代码2.1.2.1 用户和账户实体类2.1.2.2 用户和账户的DAO层接口2.1.2.3 配置文件2.…

Mybatis generator和mybatis-plus

一 Mybatis generator的实现 实现方法一&#xff1a; 依赖配置文件运行实现类 1.依赖 <!-- MyBatis 生成器 --><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.…

乐高幻影忍者推出十周年复刻经典套装;炸鸡大师Popeyes开设首家南京旗舰店 | 美通企业日报...

今日看点&#xff1a;乐高幻影忍者系列诞生十周年&#xff0c;推出复刻经典套装与时尚联名系列。炸鸡大师Popeyes正式宣布入驻南京。麦德龙中国发布2020可持续发展报告。Cytiva向龙沙集团交付模块化生物工厂。拜耳以医药创新突破推动处方药业务转型。锐思华创携裸眼AR亮相国际消…

mybatis/mybatisplus 一对多查询

1.Controller 定义 需要传入的参数 OntologyEntity paramnew OntologyEntity(); param.setName(name); Page<OntologyEntity> resultPagenew Page<>(pageNumber,pageSize); // 查询分页数据&#xff1a;mybatisplus // param&#xff1a;为查询需要传入的参数可以…

Mybatis -- 使用

目录 官网 依赖 简单使用 Mapper代理方式 字段属性名映射 请求参数 1.普通类型参数 2.多个参数 3.对象参数 4.Map参数 动态参数 IF 判断 Choose判断 特殊字符 插入insert 更新update 删除delete 单个删除 多个删除 参数封装 单个参数 多个参数 一对一查询…

MyBatis的一对多查询

<!-- 一对多关联查询 --> <resultMap id"唯一的标识" type"映射的pojo对象"><id column"表的主键字段或查询语句中的别名字段" jdbcType"字段类型" property"映射pojo对象的主键属性" /><result colu…

MyBatis增强器——Mybatis-Plus

MyBatis增强器——Mybatis-Plus 一、Mybatis-Plus简介1.简介2.特性3.支持数据库4.框架结构 二、入门案例1.开发环境2.创建数据库及表创建表添加数据 3.创建SpringBoot工程4.编写代码 三、基本crud四、常用注解1.TableName通过TableName解决问题通过全局配置解决问题 2.TableId通…