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, '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')
第二步:创建一个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>
第四步:连接数据库并编写数据库配置
-
注意这里是需要连接数据库的
-
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方法都具备
@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=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)
当然也可以考虑加上日志配置,这样就可以看到完整的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给我们提供了很多操作数据库的方法 ;我们甚至连配置文件都没有编写