前言🍭
❤️❤️❤️Spring专栏更新中,各位大佬觉得写得不错,支持一下,感谢了!❤️❤️❤️
Spring + Spring MVC + MyBatis专栏
MyBatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。它提供了一些常用的 CRUD 操作,以及分页、动态 SQL 等常用功能,同时也支持自定义 SQL 语句和存储过程。
一、MybatisPlus简介🍭
MyBatis-Plus官网有两个,第一个域名是热心网友捐赠的(之前已经被申请过了),第二个是正牌官网(国人开发的,为中文)。
MyBatis-Plus
MyBatis-Plus (baomidou.com)
我们可以跟着官网学,这个十分照顾新手。
1、 MybatisPlus特性🍉
- 无侵入: 只做增强不做改变,不会对现有工程产生影响
- 强大的 CRUD 操作: 内置通用 Mapper,少量配置即可实现单表CRUD 操作
- 支持 Lambda: 编写查询条件无需担心字段写错
- 支持主键自动生成
- 内置分页插件
- ......
详情可见官网:
总结:使用MybatisPlus几乎可以让你什么都不写,代码简化到极致。
2、MyBatis-Plus历史发展🍉
MyBatis-Plus是一个基于MyBatis的增强工具库,旨在简化和增强MyBatis的开发。下面是MyBatis-Plus的历史发展的总结:
截至目前,MyBatis-Plus已经成为了一个功能强大、稳定可靠的开发工具库,广泛应用于Java项目中,极大地简化了MyBatis的开发工作。它的持续发展得益于社区的贡献和活跃的维护。
更具体的可以看MyBatis-Plus官网更新日志:mybatis-plus/CHANGELOG.md at 3.0 · baomidou/mybatis-plus · GitHub
二、MyBatis-Plus入门案例🍭
1、新建项目🍉
只选择MySQL Driver(暂时不使用SpringWeb),MyBatis-Plus配置文件需要自己手动添加。
com.baomidou
mybatis-plus-boot-starter
3.4.1
并且不再需要导入 mybatis和mybatis整合spring的jar包:
还有一个druid jar包:
com.alibaba
druid
1.1.16
2、连接数据库🍉
# 配置数据库的连接字符串
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/ku2022?characterEncoding=utf8
username: root
password: "123456"
driver-class-name: com.mysql.cj.jdbc.Driver
所使用的库中需要有与user实体类名字相同的表:
3、UserDao接口🍉
之前的Mapper需要写方法:
package com.example.ssmdemo1.mapper;
import com.example.ssmdemo1.entity.Userinfo;
import org.apache.ibatis.annotations.Mapper;
@Mapper//需要添加 @Mapper 注解
public interface UserMapper {
Userinfo getUserById(Integer id);
}
MyBatis-Plus之后:
package com.example.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.domain.User;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserDao extends BaseMapper {
}
点进BaseMapper中去,可以看到它自带了非常多的方法:
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package com.baomidou.mybatisplus.core.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
public interface BaseMapper extends Mapper {
int insert(T entity);
int deleteById(Serializable id);
int deleteByMap(@Param("cm") Map columnMap);
int delete(@Param("ew") Wrapper queryWrapper);
int deleteBatchIds(@Param("coll") Collection