• MyBatisPlus带你快速入门(1)


    目录

    MyBatisPlus前言

    MyBatisPlus概述

    快速入门

    (1)创建数据库(这里我就取名为mybatis-plus)

    (2)建表,这里用user表作例子

    (3)构建一个SpringBoot项目(自行构建,如果不会就要补基础!!)

    (4)导入父工程以及基本依赖

    (5)连接数据库:即编写application.properties配置文件

    启动测试


    MyBatisPlus前言

    为了照顾某些不太习惯看MyBatis文档的同学,这里由我来抛砖引玉,简单地说明下MyBaits地入门

    需要的基础:对SSM有了解,并会基本的配置流程

    学习意义:可以节省大量工作时间,所有的CRUD代码都可以由其自动化完成

    MyBatisPlus概述

    MyBatis是简化JDBC操作的,而MyBatis是半持久层框架,无法自动生成基本的CRUD,因此对SQL语句编写能力的要求较高。而MyBaitisPlus是进一步简化MyBatis,可以自动生成基本的CRUD语句,除此之外,还有下列的功能:

    • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑

    • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作

    • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求

    • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错

    • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题

    • 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作

    • 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )

    • 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用

    • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询

    • 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库

    • 内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询

    • 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

    快速入门

    (1)创建数据库(这里我就取名为mybatis-plus)

     

    (2)建表,这里用user表作例子

    建表:
    1. DROP TABLE IF EXISTS user;
    2. CREATE TABLE user
    3. (
    4.   id BIGINT(20) NOT NULL COMMENT '主键ID',
    5.   name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
    6.   age INT(11) NULL DEFAULT NULL COMMENT '年龄',
    7.   email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
    8.    PRIMARY KEY (id)
    9. );
    赋值:
    1. DELETE FROM user;
    2. INSERT INTO user (id, name, age, email) VALUES
    3. (1, 'Jone', 18, 'test1@baomidou.com'),
    4. (2, 'Jack', 20, 'test2@baomidou.com'),
    5. (3, 'Tom', 28, 'test3@baomidou.com'),
    6. (4, 'Sandy', 21, 'test4@baomidou.com'),
    7. (5, 'Billie', 24, 'test5@baomidou.com');

    (3)构建一个SpringBoot项目(自行构建,如果不会就要补基础!!)

    (4)导入父工程以及基本依赖

    1. <parent>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-starter-parentartifactId>
    4. <version>2.2.5.RELEASEversion>
    5. <relativePath/>
    6. parent>
    1. <dependency>
    2.    <groupId>mysqlgroupId>
    3.    <artifactId>mysql-connector-javaartifactId>
    4. dependency>
    5. <dependency>
    6.    <groupId>org.projectlombokgroupId>
    7.    <artifactId>lombokartifactId>
    8. dependency>
    9. <dependency>
    10.    <groupId>com.baomidougroupId>
    11.    <artifactId>mybatis-plus-boot-starterartifactId>
    12.    <version>3.0.5version>
    13. dependency>

    注意:尽量不要同时导入MyBatis和MyBaitis-plus依赖

    (5)连接数据库:即编写application.properties配置文件

    1. spring.datasource.username=root
    2. spring.datasource.password=abc15976582078
    3. spring.datasource.url=jdbc:mysql://localhost:3306/mybatis-plus?useUinicode=true&characterEncoding=utf8&useSSL=false
    4. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

    (6).使用mybatis时传统方式:pojo-dao(连接mybatis、配置mapper.xml文件)、service-controller

    使用mybatis-plus之后,只需要以下步骤:

    1.pojo

    1. @Data
    2. @AllArgsConstructor
    3. @NoArgsConstructor
    4. public class User {
    5.    private Long id;
    6.    private String name;
    7.    private Integer age;
    8.    private String email;
    9. }

    2.mapper接口

    1. //在对应的Mapper上面实现基本的接口 BaseMapper
    2. @Repository  //加上该注解代表持久层
    3. public interface UserMapper extends BaseMapper {
    4.    //所有的CRUD操作已经编写完成
    5.    //你不需要像以前一样配置一大堆文件
    6. }

    3.使用

    1. @MapperScan("com.example.mybatisplus.mapper")//扫描我们的Mapper文件夹
    2. @SpringBootApplication
    3. public class MybatisplusApplication {
    4.    public static void main(String[] args) {
    5.        SpringApplication.run(MybatisplusApplication.class, args);
    6.   }
    7. }

    启动测试

    1. @SpringBootTest
    2. class MybatisplusApplicationTests {
    3.    //继承了BaseMapper,所有的方法都是由自己来写
    4.    @Autowired
    5.    private UserMapper userMapper;
    6.    @Test
    7.    void contextLoads() {
    8.    //查询全部用户
    9.        //参数是一个wrapper,条件构造器,这里我们先用null
    10.        List users = userMapper.selectList(null);
    11.        users.forEach(System.out::println);
    12.   }
    13. }

     可以看到测试结果成功。真的非常非常之方便,不用再写基本sql,直接就由MyBatisplus帮我们写好。

  • 相关阅读:
    MySQL8.0物理备份恢复核心流程
    华为挑战良率难题,台积电老将曝1惊人内幕 | 百能云芯
    推动智行生态融合!Flyme 迎来大动作,魅族与星纪时代布局初显
    谷歌竞价排名,谷歌关键词优化,谷歌搜索引擎优化-大舍传媒
    开放式RAN芯片的内联加速与旁路加速
    Django系列:Django简介与MTV架构体系概述
    MySQL表的约束
    移动机器人运动规划 | 基于图搜索的Dijkstra 和 A*算法详解
    解决Word 表格不跨页的问题、方框带勾和叉的问题
    Vue框架+Element组件库学习笔记
  • 原文地址:https://blog.csdn.net/Kristabo/article/details/126066311