天天看点

2.Mybatis Plus快速入门

2.Mybatis Plus快速入门

  • 跟着官网操作
​ 第一步:创建数据库mybatis_plus
  • 创建表
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)
);
           
  • 添加字段
DELETE FROM user;

INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, '[email protected]'),
(2, 'Jack', 20, '[email protected]'),
(3, 'Tom', 28, '[email protected]'),
(4, 'Sandy', 21, '[email protected]'),
(5, 'Billie', 24, '[email protected]')
           
​ 第二步:创建一个springboot的web项目(初始化工程)
​ 第三步:导入相关依赖
  • 需要导入数据库驱动,mybatis-plus场景启动器
<!--数据库驱动-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
<!--lombok快速编写实体类-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>
<!--mybatis-plus(baomidou开发的不是springboot官网的)-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.3.2</version>
</dependency>
           
​ 第四步:连接数据库并编写数据库配置
  • 注意这里是需要连接数据库的
    2.Mybatis Plus快速入门
  • GMT%2B8:表示东八区
spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=GMT%2B8&useSSL=false&useUnicode=true&charcterEncoding=UTF-8
    driver-class-name: com.mysql.cj.jdbc.Driver
           
​ 第五步:编写实体类pojo
@Data
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}
           
​ 第六步:编写Mapper类 UserMapper.java
  • UserMapper接口需要继承BaseMapper类并且指定相应的泛型
  • 只要我们实现了BaseMapper并指定泛型他就能给我们提供已经写好的crud代码
  • 下面是BaseMapper类的源码,几乎所有的crud方法都具备
2.Mybatis Plus快速入门
@Repository //代表持久层
public interface UserMapper extends BaseMapper<User> {
}
           
​ 第七步:在 Spring Boot 启动类中添加

@MapperScan

注解,扫描 Mapper 文件夹:
package com.xuan;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.xuan.mapper")
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}
           
​ 第八步:编写测试类进行测试
  • selectList方法中参数wapper是一个条件构造器 这里先不指定
  • forEach参数是Consumer泛型 通过引用方式输出
package com.xuan;


import com.xuan.mapper.UserMapper;
import com.xuan.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.List;

@SpringBootTest
class DemoApplicationTests {

    @Autowired
    private UserMapper userMapper;


    @Test
    void contextLoads() {
        //参数wapper是一个条件构造器 这里先不指定
        List<User> userList = userMapper.selectList(null);
        //forEach参数是Consumer泛型
        userList.forEach(System.out::println);
    }

}
           
​ 测试结果如下 复制关键结果
User(id=1, name=Jone, age=18, [email protected])
User(id=2, name=Jack, age=20, [email protected])
User(id=3, name=Tom, age=28, [email protected])
User(id=4, name=Sandy, age=21, [email protected])
User(id=5, name=Billie, age=24, [email protected])
           
​ 当然也可以考虑加上日志配置,这样就可以看到完整的sql语句以及执行流程
  • 这是默认的日志实现
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
           
  • 日志打印图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TxNZDeM4-1595379993646)(C:\Users\l\AppData\Roaming\Typora\typora-user-images\image-20200721114036637.png)]

​ 总结:mybatis-plus帮我们做了什么? 一个是帮我们编写了sql语句,因为我们从头到尾都没写sql语句。

​ 另一个是myabtis-plus给我们提供了很多操作数据库的方法 ;我们甚至连配置文件都没有编写