美文网首页
SpringBoot之【mybatisplus】快速上手

SpringBoot之【mybatisplus】快速上手

作者: MR_jw | 来源:发表于2019-12-18 18:30 被阅读0次

    1、概述


    MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,
    为简化开发、提高效率而生。

    特性

    • 无侵入:只做增强不做改变
    • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
    • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
    • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
    • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
    • 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
    • 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
    • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询,支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
    • 内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询

    2、快速开始


    2.1 新建springboot,引入相关依赖

    关键依赖:
     <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.18</version>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.3.0</version>
            </dependency>
    

    2.2 配置文件


    2.2.1 在resources下新建db文件
    1. 新建建表sql chema.sql
    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.数据导入文件 data.sql

    DELETE FROM user;
    
    INSERT INTO user (id, name, age, email) VALUES
    (1, 'Jone', 18, 'test1@baomidou.com'),
    (2, 'Jack', 20, 'test2@baomidou.com'),
    (3, 'Tom', 28, 'test3@baomidou.com'),
    (4, 'Sandy', 21, 'test4@baomidou.com'),
    (5, 'Billie', 24, 'test5@baomidou.com');
    
    2.2.2 配置文件yml
    spring:
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql:///test?serverTimezone=UTC
        username: root
        password: root
        schema: classpath:db/chema.sql #后期注释掉,否则每次启动都会初始化sql,大坑啊
        data: classpath:db/data.sql #后期注释掉,否则每次启动都会初始化sql,大坑啊
        initialization-mode: always  #不加的话不会执行schema和data
    
    

    2.3 编码


    2.3.1 启动类增加mapper扫描
    @SpringBootApplication
    @MapperScan("com.example.mybatisplusdemo.mapper")
    public class MybatisplusdemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(MybatisplusdemoApplication.class, args);
        }
    
    }
    
    2.3.2 新建实体类User
    @Data     //lombok不了解的话自己了解下
    public class User {
        private Long id;
        private String name;
        private Integer age;
        private String email;
    }
    
    2.3.2 在mapper下新建Usermapper
    public interface UserMapper extends BaseMapper<User> {}
    

    2.4 测试


    @RunWith(SpringRunner.class)
    @SpringBootTest
    class MybatisplusdemoApplicationTests {
    
        @Autowired
        private UserMapper userMapper;
    
        @Test
        void testSelect() {
            List<User> users = userMapper.selectList(null);//null表示无条件
            Assert.assertEquals(5,users.size()); //简单断言
            users.forEach(System.out::println);
        }
    
    }
    

    输出内容

    User(id=1, name=Jone, age=18, email=test1@baomidou.com)
    User(id=2, name=Jack, age=20, email=test2@baomidou.com)
    User(id=3, name=Tom, age=28, email=test3@baomidou.com)
    User(id=4, name=Sandy, age=21, email=test4@baomidou.com)
    User(id=5, name=Billie, age=24, email=test5@baomidou.com)
    

    相关文章

      网友评论

          本文标题:SpringBoot之【mybatisplus】快速上手

          本文链接:https://www.haomeiwen.com/subject/bwgunctx.html