目录
为什么要学习MyBatisPlus?
简介
特性
框架结构
快速入门
步骤
说明:
注意点:我们需要在启动类上去扫描我们的mapper包下的所有的接口@MapperScan("com.system.bootMyplus.mapper")
思考问题?
为什么要学习MyBatisPlus?
因为MyBatisPlus可以节省我们大量工作时间,所以的CRUD代码(业务的描述)它都可以自动化完成。
市面上流行JPA(继承SpringBoot,此法比较多)、tk-mapper(用的比较多)、MyBatisPlus(主要是学会偷懒)
要想学会MyBatis-Plus,得先学会SSM和SpringBoot!!!!!
简介
MyBatis本来就是简化JDBC操作的,而MyBaitsPlus则简化MyBatis。
特性
框架结构
快速入门
使用第三方组件:
1、导入对应的依赖。
2、研究依赖如何配置。
3、代码如何编写。
4、提高扩展技术能力。
步骤
1、创建数据库mybatis_plus。
2、创建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)
);
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');
--真实开发中,version(乐观锁)、deleted(逻辑删除)、gmt_create(表的创建时间)、gmt_modified(修改时间)
3、编写项目,使用SpringBoot初始化。
若使用SpringBoot模板创建项目,过程如下:
?
?
?4、导入依赖。(若使用maven创建的话,则导入依赖)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>SpringBoot_MyBatilPlus</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 父工程 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
</parent>
<!-- web场景依赖 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.4</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
</dependencies>
<!-- 打成jar包依赖 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
说明:
我们使用MyBatisPlus可以节省我们大量的代码,尽量不要同时导入MyBatis和Mybaits-plus版本的差异。
5、连接数据库,和MyBatis相同。创建application.yml
#SpringBoot整合Mybatis-Plus相关配置
spring:
datasource:
url: jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=utf-8&serverTimezone=UTC
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
#设置文件大小
servlet:
multipart:
max-file-size: 50MB
max-request-size: 100MB
#mybatis-plus配置及其日志输出
mybatis-plus:
configuration:
# 日志
# log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
mapper-locations: ["classpath*/mapper/*.xml"]
global-config:
db-config:
logic-delete-value: 1
logic-not-delete-value: 0
logic-delete-field: flag
#驼峰下划线转换
column-underline: true
传统方式6、pojo【bean】-dao【mapper,连接mybatis,配置mapper.xml文件】-service-controller
6、使用MyBatis-Plus之后:
package com.system.bootMyplus.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
package com.system.bootMyplus.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.system.bootMyplus.bean.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
//在对应的Mapper上面实现基本的接口 BaseMapper
@Mapper
@Repository
//@Repository 若不加@Mapper则加此注解,代表dao层(也就是mapper层)持久层注解
public interface UserMapper extends BaseMapper<User> {
/**
* 所以的CRUD操作已经编写完成
* 无需像以前一样配置一大堆xml文件
*/
}
package com.system.bootMyplus;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//扫描并识别到mapper文件夹即可
@MapperScan("com.system.bootMyplus.mapper")
@SpringBootApplication
public class WebApplication {
public static void main(String[] args) {
SpringApplication.run(com.system.bootMyplus.WebApplication.class,args);
}
}
package com.system.bootMyplus;
import com.system.bootMyplus.bean.User;
import com.system.bootMyplus.mapper.UserMapper;
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
public class MybatisPlusApplicationTests {
/**
* 继承了BasesMapper,所有的方法都源于自己的父类,我们也可以编写自己的扩展方法
*/
@Autowired
private UserMapper userMapper;
@Test
void contextLoads(){
//查询全部用户
/**
* 其参数就是一个wrapper,条件构造器材,若不用,则写为null
*/
List<User> users = userMapper.selectList(null);
users.forEach(System.out::println);
}
}
#SpringBoot整合Mybatis-Plus相关配置
spring:
datasource:
url: jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=utf-8&serverTimezone=UTC
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
#设置文件大小
servlet:
multipart:
max-file-size: 50MB
max-request-size: 100MB
#mybatis-plus配置及其日志输出
mybatis-plus:
configuration:
# 日志
# log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
# mapper-locations: ["classpath*/mapper/*.xml"]
global-config:
db-config:
logic-delete-value: 1
logic-not-delete-value: 0
logic-delete-field: flag
#驼峰下划线转换
column-underline: true
注意点:我们需要在启动类上去扫描我们的mapper包下的所有的接口@MapperScan("com.system.bootMyplus.mapper")
思考问题?
1、SQL谁帮我们写?
2、方法哪里来的?
答:1、2、答案相同。为之,MyBatisPlus都写好了,我们直接使用即可。若里面接口没有所要使用的话,可以编写自己的扩展方法。
|