为什么要学习Mybatisplus
一、MybatisPlus优势
节省大量的工作时间,所有的CRUD代码都可以自动化完成!
二、MybatisPlus简介
是Mybatis的升级,只在原有的基础上进行增加功能而不做任何的改变
三、MybatisPlus的特性
1、无侵入:只做增强不做改变,引入它不会对现有的工程产生影响,如丝般顺滑
2、损耗小:启动即会自动注入基本的CRUD,性能基本无损耗,直接面向对象操作
3、强大的CRUD操作:内置通用Mapper、通用Service,仅仅通过少量配置即可实现表单大部分CRUD操作,更有强大的条件构造器,满足各类使用需求
4、支持Lambda形式调用:通过Lambda表达式,方便的编写各类查询条件,无需担心字段写错
5、支持主键自动生成:支持4种主键策略(内含分布式唯一ID生成器-Sequence),可自由配置,完美解决主键问题
6、支持ActiveRecord模式:支持ActiveRecord形式调用,实体类只需要继承Model类即可进行强大的CRUD操作
7、支持自定义全局通用操作:支持全局通用方法注入(write once,use anywhere)
8、内置代码生成器;采用代码或者Maven插件可以快速生成Mapper、Model、Service、Controller层代码,支持模板引擎,更有超多自定义的配置
9、内置分页插件:基于Mybatis物理分页,开发者无需关心具体的操作,配置好插件之后,写分页等同于普通List查询
10、分页插件支持多种数据库:支持MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer等多种数据库
11、内置性能分析插件:可输出SQL语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
12、内置全局拦截插件:提供全表delete、update操作智能分析阻断,也可以自定义拦截规则,预防误操作
快速入门MybatisPlus
准备工作
创建数据库和用户表
一、导入依赖
<!--数据库连接驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--mybatisplus依赖,是自己开发的,并不是官方的-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
二、配置application.properties配置文件
1、配置链接数据源
#数据库连接配置
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/mybatisplus?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
三、区别于传统的方式,需要编写Mapper层、Service层,配置Mapper.xml等配置文件,现在只需要编写实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
四、编写Mapper接口
//以后省略了写Mapper.xml配置文件,直接继承BaseMapper接口,传递的泛型就是方法中传递的参数
@Repository //代表持久层
public interface UserMapper extends BaseMapper<User> {
//到此,所有的CRUD都已经编写完成了!!!!!!
}
五、在主启动类上添加Mapper文件的扫描注解,扫描mapper包下的所有接口
@MapperScan("com.guohui.mapper") //扫描mapper文件夹,编写的mapper接口才能生效
@SpringBootApplication
public class MybatisplusApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisplusApplication.class, args);
}
}
六、测试类测试
@SpringBootTest
class MybatisplusApplicationTests {
//将UserMapper自动装配到测试类中,因为继承了父类BaseMapper,所有的方法都来自父类
@Autowired
private UserMapper userMapper;
@Test
void contextLoads() {
//查询全部用户,这里需要传递一个Wrapper(条件构造器),后面讲解
List<User> users = userMapper.selectList(null);
users.forEach(System.out::println);
}
}
七、控制台打印结果
至此,你已经掌握了对MybatisPlus的入门级的认识,后续会继续发布关于其深入的介绍,敬请期待!欢迎交流和指正!