MyBatisPlus-入门篇

MyBatisPlus-入门篇


MyBatisPlus 不学不知道,学完就两个字“真香”
前提:需要有maven,mysql,spring,springmvc,mybatis,springboot基础
目的:节省大量CRUD编码时间,自动化完成

1. MyBatisPlus-简介

1.1 特性(官方有详细的特性,以下仅列出我了解且使用过的)

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
  • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
  • 分页插件:利用page封装,实际上还是调用limit进行分页,支持多种数据库
  • 主键自动生成:支持 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置
  • 代码生成器:可快速生成 Mapper、Pojo、Service 、Controller 层代码,可自定义生成配置
  • 性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
  • 全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作
  • CRUD 操作:内置通用 Mapper、通用 Service,通过少量配置即可实现单表大部分CRUD操作,更有强大的条件构造器,满足各类使用需求

1.2 如何使用第三方组件(整理后加上图)

  • 导入对应的依赖——依旧是添加pom文件
  • 研究一栏如何配置——config文件如何配置
  • 代码如何进行编写——官方文档快速开始文档
  • 提高扩展技术的能力——研究官方文档的扩展及功能

2. 快速入门(MybatisPlus官方文档链接)

2.1 创建数据库:mybatis_plus

2.2 创建User表

DROP TABLE IF EXISTS user;

CREATE TABLE user
(
	id BIGINT(20) NOT NULL COMMENT '主键ID',
	name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
	age INT(11) NULL DEFAULT NULL COMMENT '年龄',
	email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
	PRIMARY KEY (id)
);

2.3 创建springboot项目:mybatisplus

2.4 导入依赖

 
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
        dependency>

        
        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
        dependency>

        
        <dependency>
            <groupId>com.baomidougroupId>
            <artifactId>mybatis-plus-boot-starterartifactId>
            <version>3.0.5version>
        dependency>

2.5 连接数据库(application.properties/application.yml)

## 数据库配置
spring.datasource.username=root
spring.datasource.password=981028
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

2.6 传统方式

pojo-dao(连接mybatis,配置mapper.xml)-service-controller

2.7 使用mybatisplus之后

  • pojo
@Data 
@AllArgsConstructor
@NoArgsConstructor 
public class User { 
    private Long id; 
    private String name; 
    private Integer age; 
    private String email;
}
  • mapper接口
package com.kuang.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kuang.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

@Mapper
@Repository
//对应mapper上面继承BaseMapper
public interface UserMapper extends BaseMapper<User> {
	//所有的CRUD操作已完成
}

  • 注意点:我们需要在springboot启动类上去扫描我们mapper包下的所有接口
    @MapperScan("com.kuang.mapper")
  • 测试类中测试
package com.kuang;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kuang.mapper.UserMapper;
import com.kuang.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;


@SpringBootTest
class MybatisPlusApplicationTests {

	//继承了BaseMapper,所有的方法都来自父类
	//我们也可以编写自己的方法
	@Autowired
	private UserMapper userMapper;


	//测试查询   查询
	@Test
	void contextLoads() {
		//wrapper相当于是查询条件,条件构造器
		userMapper.selectList(null).forEach(System.out::println);
	}
  • 结果

3. 流程图


完成已上步骤已经实现mybatisplus快速入门
思考问题:
SQL谁帮我们写的? mybatisplus 已经都写好了
方法哪里来的? mybatisplus 已经都写好了

你可能感兴趣的:(持久层中间件,mysql,mybatis,spring,boot,java)