Mybatis-plus入门
一:Mybatis-plus 简介
概念:Mybatis plus是一个Mybatis的增强工具,在Mybatis原有的基础上做了进一步的增强而不做改变,是为了简化效率,提高Mybatis的效率而生的。
这里为了方便理解,说明下CRUD是什么,它指的是在做计算处理时的增加,读取,查询,更新和删除。(可以简单理解为增删改查)
Mybatis-plus的主要特点:
1.它不会对现有工程产生影响。
损耗比较小,启动即会自动注入基本CURD,性能基本无损耗,直接面向对象操作。
2.内置通用Mapper、Service,仅通过少量配置即可实现单表大部分CRUD操作,更有强大的条件构造器,满足各类使用需求。
3.支持Lambda形式调用,通过Lambda表达式,方便的编写各类查询条件,无需再担心字段写错的问题,同时支持多种数据库∶支持MySQL、Oracle、HSQL、soLServer等多种数据库。
4.支持主键的自动生成,支持多达4种主键策略(内含分布式唯一ID生成器-Sequence ),可自由配置,完美解决主键问题。
5.Mapper对应的XML支持热加载,对于简单的CRUD操作,甚至可以无XML启动。支持ActiveRecord模式:支持ActiveRecord形式调用,实体类只需继承Model类即可进行CRUD操作。
6.支持全局通用方法的注入( Write once, use anywhere )。
7.支持数据库关键词自动转义,还可自定义关键词。
8.内置代码生成器,采用代码或者Maven插件可快速生成Mapper、Model、Service、Controller层代码,支持模板引擎,更有超多自定义配置供开发者使用。
9.内置分页插件:基于MyBatis物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通List查询。
三:Mybatis-plus的执行流程
Mybatis-plus整合了多个模块:
mybatis-plus-boot-starter:mybatisplus的springboot启动器,为SpringBoot的整合提供一些模块。
annotation:快速开发注解模块。
extension:扩展模块。
core:核心组件模块。
generator:生成器,主要用于生成代码。
在执行的时候扫描这个实体类,通过反射,分析表和相应的字段去生成对应的SQL语句,并将其注入到Mybatis的容器中,最后通过Mybatis去做执行。
四:代码实现(Mybatis+Mybatis-plus实现查询User)
首先我们先新建一个Maven工程,名为itcastmybatisplus。
然后导入所需要的依赖:
<!-- mybatis-plus插件依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.1.1</version>
</dependency>
<!-- Mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!--连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.11</version>
</dependency>
<!--简化bean代码的工具包-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
<version>1.18.4</version>
</dependency>
<!--单元测试-->
<dependency>
<groupId>junit</groupId>
<arti