目录
①:创建新模块,选择Spring初始化,并配置模块相关基础信息
一、MyBatisPlus简介
1. 入门案例
问题导入
MyBatisPlus环境搭建的步骤?
SpringBoot整合MyBatisPlus入门程序
①:创建新模块,选择Spring初始化,并配置模块相关基础信息
可以选择start.aliyun.com做脚手架
②:选择当前模块需要使用的技术集
③:添加相关的起步依赖
多余的文件和依赖配置都可以删除了
pom.xml文件如下:
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.xhy</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- 使用2.5.0的版本 -->
<spring-boot.version>2.5.0</spring-boot.version>
</properties>
<dependencies>
<!--springboot-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<!-- spring整合test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<!-- mybatis-plus的驱动包 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<!-- 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.23</version>
</dependency>
<!-- mysql要选择正确版本的驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
<scope>runtime</scope>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<!-- 导入springboot的依赖包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
注意事项:如果使用Druid数据源,需要导入对应坐标
④:制作实体类与表结构
目前:类名与表名对应,属性名与字段名对应
SQL脚本
CREATE DATABASE IF NOT EXISTS mybatisplus_db CHARACTER SET utf8;
USE mybatisplus_db;
CREATE TABLE `user` (
id BIGINT(20) PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(32) NOT NULL,
gender CHAR(1),
`password` VARCHAR(32) NOT NULL,
age INT(3) NOT NULL ,
tel VARCHAR(32) NOT NULL
);
INSERT INTO `user` VALUES(NULL,'Rose','女','123456',12,'12345678910');
INSERT INTO `user` VALUES(NULL,'Jack','男','123456',8,'12345678910');
INSERT INTO `user` VALUES(NULL,'Jerry','男','123456',15,'12345678910');
INSERT INTO `user` VALUES(NULL,'NewBoy','男','123456',19,'12345678910');
INSERT INTO `user` VALUES(NULL,'Kate','女','123456',28,'12345678910');
INSERT INTO `user` VALUES(NULL,'张晓','女','123456',22,'12345678910');
INSERT INTO `user` VALUES(NULL,'张大炮','男','123456',16,'12345678910');
SELECT * FROM `user`;
在prop目录下创建实体类
package com.xiao.demo.domain;
import lombok.Data;
@Data
public class User {
private Long id;
private String name;
private String gender;
private String password;
private Integer age;
private String tel;
}
⑤:设置Jdbc参数(application.yml)
# 数据源的配置
spring:
datasource:
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql:///mybatisplus_db
# 显示SQL语句
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
⑥:定义数据接口,继承BaseMapper
接口上要添加@Mapper注解
package com.xiao.demo.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.itheima.domain.User;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
⑦:测试类中注入dao接口,测试功能
-
建议把测试类的包移入com.xiao.test包中,修改类名Demo1MybatisPlusTest
-
测试类上添加@SpringBootTest注解
-
注入UserMapper
-
selectList查询所有用户,参数为null
-
测试类要放在启动类的同一级或子级下
package com.xiao.demo.test;
import com.xiao.demo.dao.UserMapper;
import com.xiao.demo.prop.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 Demo1MybatisPlusTest {
@Autowired
private UserMapper userMapper;
@Test
void testGetAll() {
List<User> userList = userMapper.selectList(null);
System.out.println(userList);
}
}
二、标准数据层开发
1. MyBatisPlus的CRUD操作
查询部分属性:
@Test
void testSameColumn() {
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
//查询所有用户,只显示id, name, age三个属性,不是全部列
wrapper.select(User::getId, User::getName, User::getAge);
List<User> userList = userMapper.selectList(wrapper);
System.out.println(userList);
}