做网站需要什么电脑,代码外包平台,网站开发超速云,广州网站建设第一公司MyBatisPlus使用教程 文章目录 MyBatisPlus使用教程1、使用方式1.1 引入依赖1.2 构建mapper接口 2、常用注解2.1 TableName2.2 TableId2.3 TableField MyBatisPlus顾名思义便是对MyBatis的加强版#xff0c;但两者本身并不冲突(只做增强不做改变)#xff1a; 引入它并不会对原…MyBatisPlus使用教程 文章目录 MyBatisPlus使用教程1、使用方式1.1 引入依赖1.2 构建mapper接口 2、常用注解2.1 TableName2.2 TableId2.3 TableField MyBatisPlus顾名思义便是对MyBatis的加强版但两者本身并不冲突(只做增强不做改变) 引入它并不会对原有工程产生影响启动即会自动注入基本 CURD性能基本无损耗直接面向对象操作
1、使用方式
它的使用方式也很简单
1.1 引入依赖
dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.3.1/version
/dependency注这里的依赖引入之后就不需要引入mybatis的依赖了
1.2 构建mapper接口
public interface UserMapper extends BaseMapperUser {}注这里需要让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需要编写注解或xmlmybatisplus在接口继承之后就能够直接调用相关的方法来进行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(valueid, 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