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

MybatisPlus 使用教程

MyBatisPlus使用教程

文章目录

  • MyBatisPlus使用教程
    • 1、使用方式
      • 1.1 引入依赖
      • 1.2 构建mapper接口
    • 2、常用注解
      • 2.1 @TableName
      • 2.2 @TableId
      • 2.3 @TableField

MyBatisPlus顾名思义便是对MyBatis的加强版,但两者本身并不冲突(只做增强不做改变):

在这里插入图片描述

引入它并不会对原有工程产生影响,启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作!!

1、使用方式

它的使用方式也很简单:

1.1 引入依赖

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

注:这里的依赖引入之后就不需要引入mybatis的依赖了

1.2 构建mapper接口

public interface UserMapper extends BaseMapper<User> {}

注:这里需要让mapper接口继承BaseMapper<>,且泛型要写上实体类

实体类代码(可自行编写):

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.itheima.mp.enums.UserStatus;
import lombok.Data;import java.time.LocalDateTime;@Data
public class User {/*** 用户id*/private Long id;/*** 用户名*/private String username;/*** 密码*/private String password;/*** 注册手机号*/private String phone;/*** 详细信息*/private UserInfo info;/*** 使用状态(1正常 2冻结)*/private UserStatus status;/*** 账户余额*/private Integer balance;/*** 创建时间*/private LocalDateTime createTime;/*** 更新时间*/private LocalDateTime updateTime;
}

数据库(可自行搭建):

在这里插入图片描述

测试一下:

@SpringBootTest
class UserMapperTest {@Autowiredprivate UserMapper userMapper;@Testvoid testInsert() {User user = new User();user.setId(5L); // 可见这里在未配置注解或xml的情况下也可直接调用方法user.setUsername("XiaoMi"); user.setPassword("123");user.setPhone("10086");user.setBalance(200);user.setInfo(UserInfo.of(24, "英文老师", "female"));user.setCreateTime(LocalDateTime.now());user.setUpdateTime(LocalDateTime.now());userMapper.insert(user);}@Testvoid testSelectById() {User user = userMapper.selectById(5L);System.out.println("user = " + user);}}

在这里插入图片描述

在这里插入图片描述

按上述步骤来即可执行成功!!相较于mybatis需要编写注解或xml,mybatisplus在接口继承之后就能够直接调用相关的方法来进行CURD,节省了许多重复工作,这对于快速开发来说很有帮助!!

2、常用注解

MyBatisPlus是通过扫描实体类(即BaseMaper<>泛型),并基于反射获取实体类信息来作为数据库信息,如果直接使用该实体类的话有几个前提条件:

  • 默认以类名驼峰转下划线作为表名
  • 默认把名为id的字段作为主键
  • 默认把变量名按驼峰方式转下划线作为表的字段名

若上述条件有差异,则需要通过注解的方式来调整:

2.1 @TableName

用于指定表名称及全局配置

类名与表名不一致(驼峰转换后不一致)会报错,需要通过@TableName注解进行指定表名:

@Data
@TableName("tb_user")
public class User {
}

在这里插入图片描述

2.2 @TableId

指定Id字段及其相关配置

对于Id字段,它一般用于描述主键,同时它也有一些属性需要添加,如自增长,可以通过@TableId进行指定:

  • IdType.AUTO:数据库自增长
  • IdType.INPUT:通过set方法自行输入
  • IdType.ASSIGN:分配ID
@TableId(value="id", type = IdType.AUTO)
private Long id;

2.3 @TableField

指定普通字段及其相关配置

@TableField一般用于以下场景:

  • 成员变量与数据库字段名不一致
  • 成员变量以is开头,且是布尔值
  • 成员变量与数据库关键字冲突,如order
  • 成员变量不是数据库字段
@TableField("username")
private String name; // 名字与数据库表中字段不同@TableField(exist = false)
private String address; // 数据库表中不存在

在这里插入图片描述

以上便是MyBatisPlus的基本使用教程了!!对于MyBatisPlus的来说,它更适合于单表操作,如果需要对多表进行复杂操作则需使用MyBatis!!

http://www.lryc.cn/news/397626.html

相关文章:

  • bash: redi-cli: 未找到命令...
  • linux 内核 红黑树接口说明
  • 【ELK】filebeat 和logstash区别
  • CNN -1 神经网络-概述
  • 插片式远程IO模块:Profinet总线耦合器在STEP7配置
  • python3读取shp数据
  • pytorch实现水果2分类(蓝莓,苹果)
  • Redis实践经验
  • 分类题解清单
  • QUdpSocket 的bind函数详解
  • [spring] Spring MVC - security(下)
  • 数据库数据恢复—SQL Server数据库由于存放空间不足报错的数据恢复案例
  • spring security的demo
  • 无需构建工具,快速上手Vue2 + ElementUI
  • 通信协议_Modbus协议简介
  • LabVIEW优化氢燃料电池
  • SpringCloudGateway
  • Wireshark 对 https 请求抓包并展示为明文
  • 如何在Ubuntu环境下使用加速器配置Docker环境
  • 2.5 C#视觉程序开发实例1----CamManager实现模拟相机采集图片
  • 算法简介:什么是算法?——定义、历史与应用详解
  • xss攻击
  • Android 性能优化之布局优化
  • TCP 握手数据流
  • MDA协议
  • always块敏感列表的相关报错,
  • STM32空闲中断处理串口接受数据
  • oak相机使用oak官网方式标定
  • 打造高效能“园区企业服务平台”,让企业更好更快发展!
  • 【常见开源库的二次开发】基于openssl的加密与解密——openssl认识与配置(一)