前置条件:能够创建SpringBoot项目(不会的可以查看主页之前的文章)
内容比较多,会分为四篇文章对MyBatisPlus剖析
- 文章一:标准数据层开发
- 文章二 :DQL编程控制
- 文章三:DML编程控制
- 文章四:细节补充
步骤一:创建SpringBoot工程,勾选数据库驱动依赖
步骤二:依赖管理(springboot2的2.5.0版本支持MyBatisPlus,大家有其他版本可以在评论区交流)相关依赖给出了注释
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.0</version>
<relativePath/>
</parent>
<groupId>com.hunan</groupId>
<artifactId>springbootmp001</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springbootmp001</name>
<description>springbootmp001</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<!-- 阿里的druid数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
<!-- MyBatisPlus相关起步依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version> <!-- 指定Lombok版本 -->
<scope>provided</scope>
</dependency>
<!-- Spring Boot Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- MySQL Connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version> <!-- 推荐使用该版本 -->
<scope>runtime</scope>
</dependency>
<!-- 测试依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter-test</artifactId>
<version>3.0.4</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Spring Boot Maven Plugin -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
步骤三:创建数据库表
步骤四:设置dataSource相关属性,使用resource下的application.yml
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatiesdata?serverTimezone=UTC
username: root
password: 123456
步骤五:根据数据库表创建实体类(类名与属性均与数据库一一对应)
@Data //data注解提供了所需的get、set和toString方法
public class Hero {
private Long id;
private String name;
private Integer grade;
private String skill;
private Integer age;
}
步骤六:定义数据层接口映射配置和数据库
@Mapper
public interface HeroDao extends BaseMapper<Hero> {
}
注意点:
(1)BaseMapper<Hero>中填的是需要映射的实体类
(2)在 Spring Boot 项目中,使用 @Mapper
注解可以让 Spring 自动扫描并注册这些 Mapper 接口 为 Spring Bean。
步骤七:编写测试类
整个查询工作完成后,没有写任何SQL语句,减少了人工写SQL语句的错误
@SpringBootTest
class Springbootmp001ApplicationTests {
@Autowired
private HeroDao heroDao;
@Test
public void testGetAll() {
List<Hero> userList = heroDao.selectList(null);
System.out.println(userList);
}
}
步骤八:依次实现增删改查
调用的方法都是来自于DAO接口继承的BaseMapper类中
功能一:新增(调用insert方法)
@Test
void testSave() {
Hero hero = new Hero();
hero.setName("薇恩");
hero.setAge(28);
hero.setGrade(8);
hero.setSkill("终极时刻");
heroDao.insert(hero);
}
注:id自增的起始序号可以进行修改,如若不会,可见文章四
功能二:删除(调用deleteById方法)
@Test
void testDelete() {
heroDao.deleteById(1880442722371649538l);
}
功能三:修改(调用updateById方法)
@Test
void testUpdate() {
//根据主键id进行更新操作
Hero hero = new Hero();
hero.setId(1L);
hero.setName("辛吉德");
hero.setSkill("剧毒踪迹");
heroDao.updateById(hero);
}
功能四:根据ID查询英雄信息(调用selectById方法)
@Test
void testGetById() {
Hero hero = heroDao.selectById(2L);
System.out.println(hero);
}
功能五:查询所有(调用selectList方法)
@Test
public void testGetAll() {
List<Hero> userList = heroDao.selectList(null);
//用列表接收从数据库查询的全部信息
System.out.println(userList);
}