MybatisPlus 从零开始 全面学习!

引入 

本文以下将mybatisPlus简称为mp

首先注意: mybatisPlus不是mybatis 的替代品,而是增强mybatis的技术.

只做增强不做改变, 引入他不会对现有工程产生影响.

MybatisPlus 从零开始 全面学习!_第1张图片

快速入门

基本步骤

MybatisPlus 从零开始 全面学习!_第2张图片

MybatisPlus 从零开始 全面学习!_第3张图片

MybatisPlus 从零开始 全面学习!_第4张图片

以下为mapper例子:

要继承这个BaseMapper类, 并在泛型括号中 标注好要操作的类

public interface UserMapper extends BaseMapper {

    void saveUser(User user);

    void deleteUser(Long id);

    void updateUser(User user);

    User queryUserById(@Param("id") Long id);

    List queryUserByIds(@Param("ids") List ids);
}

MybatisPlus 从零开始 全面学习!_第5张图片

常用注解

注意:mp遵守的约定如下,如不符合则使用右图注解来标记

mp要操作, 表中必须有一个主键, 否则它无法进行自动操作

MybatisPlus 从零开始 全面学习!_第6张图片MybatisPlus 从零开始 全面学习!_第7张图片

举例使用如下; 

MybatisPlus 从零开始 全面学习!_第8张图片

注意:如果不指定主键的设置方法 ,默认为雪花算法自动生成

MybatisPlus 从零开始 全面学习!_第9张图片

MybatisPlus 从零开始 全面学习!_第10张图片

 常用配置

MybatisPlus 从零开始 全面学习!_第11张图片

附带了全局配置,但是配置优先级不如局部配置

使用的完整流程

MybatisPlus 从零开始 全面学习!_第12张图片

核心功能

条件构造器

MybatisPlus 从零开始 全面学习!_第13张图片

MybatisPlus 从零开始 全面学习!_第14张图片

MybatisPlus 从零开始 全面学习!_第15张图片案例

基于以下原始sql设计mp语句

MybatisPlus 从零开始 全面学习!_第16张图片

QueryWrapper wrapper = new QueryWrapper()
                .select("id","username","info")
                .like("username","o")
                .ge("balance","1000");
void testUpdateById() {
        /*要更新的数据*/
        User user = new User();
        user.setBalance(2000);
        /*更新条件*/
        QueryWrapper wrapper = new QueryWrapper()
                .eq("username","jack");
        userMapper.update(user,wrapper);
    }

IService(核心)

MybatisPlus 从零开始 全面学习!_第17张图片

MybatisPlus 从零开始 全面学习!_第18张图片

新增用户操作:    不需要写service代码,只需要在mapper层注入service并调用相应方法即可

MybatisPlus 从零开始 全面学习!_第19张图片

删除用户操作:    也不需要写service代码,只需要在mapper层注入service并调用相应方法即可

MybatisPlus 从零开始 全面学习!_第20张图片

查询(批量)用户操作同理

MybatisPlus 从零开始 全面学习!_第21张图片

复杂的业务逻辑, 我们可以在service层中, 通过条件判断 规避掉复杂的语句, 如下使用if. 再用mapper执行简单的sql语句

MybatisPlus 从零开始 全面学习!_第22张图片

批量新增

MybatisPlus 从零开始 全面学习!_第23张图片

首先修改批处理配置  设置为true

一次插入要多少  就准备多大的集合,  然后通过循环把每一条数据装载到list中,  每当达到上限时   就使用service的方法执行sql.  然后清空list  继续装载下一批.

MybatisPlus 从零开始 全面学习!_第24张图片

扩展功能

1.代码生成器

使用步骤

MybatisPlus 从零开始 全面学习!_第25张图片

MybatisPlus 从零开始 全面学习!_第26张图片

此处可能会有时区错误,尝试输入以下url:

jdbc:mysql://localhost/mp?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

MybatisPlus 从零开始 全面学习!_第27张图片

然后点击提交,这个插件便会帮你自动生成对应的代码框架,大大简化了重复代码的劳动

2.静态工具(待完善)

3.逻辑删除

MybatisPlus 从零开始 全面学习!_第28张图片

MybatisPlus 从零开始 全面学习!_第29张图片

 4.枚举处理器(待完善)

插件功能(待完善)

分页查询插件

总结

     学完mp以后, 我认为他最大的优势在于写简单crud方面很便捷, 但在写复杂sql语句时不如使用mybatis来的快, xml的可读性甚至比这更高一些,复用也更强. 

     同时,使用Iservice虽然便捷, 但是对于service层的侵入  是好是坏还有待考究.

你可能感兴趣的:(Spring,学习,java,开发语言)