ToB企服应用市场:ToB评测及商务社交产业平台

标题: 一,初始 MyBatis-Plus [打印本页]

作者: 小秦哥    时间: 2024-9-21 14:00
标题: 一,初始 MyBatis-Plus
一,初始 MyBatis-Plus

@
目次

1. MyBatis-Plus 的概述

学习 MyBatis -Plus 之前,我们可以先来简单的,轻微的,回顾一下,MyBatis 框架的一些问题:
这里只是简单的回顾,关于MyBatis 的更多具体内容各人可以移步至:✏️✏️✏️ MyBatis_ChinaRainbowSea的博客-CSDN博客
我们来简单思考一下,MyBatis 框架的开发效率怎么样?
开发效率也就是我们使用这款框架开发的速度快不快,是否简单好用易上手。从这个角度思考,每当我们需要编写一个SQL需求的时间,我们需要做几步:
通过上面的发现,对于一个SQL需求,无论是单表照旧多表,我们是需要完成如上几步,才气实现SQL需求的开发。
但是在开发中,有一些操纵是通过逻辑,这些通用逻辑是可以被简化的,比方:
分析到这里我们发现,其实核心框架并没有发生变化,依赖照旧 Mybatis,只不外我们希望对于 MyBatis 进行一些封装和优化,让他更加的好用,更加的易用。
以是:MyBatis Plus 它就来了,它是 MyBatis 的一款增强工具。
MybatisPlus,从名称上来看,我们就发现,他和Mybatis长得很像,其实MybatisPlus就是Mybatis的孪生兄弟。学习MyBatis-Plus 首先,我们来看看它的官网地点是:https://baomidou.com/

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
愿景
我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。

MyBatis-Plus的特性说明:
MyBatis-Plus 的框架结构:

什么是Mybatis框架呢,他是一个持久层框架,目的是简化持久层的开发。在这里我们就使用springboot整合Mybatis,实现Mybatis框架的搭建。
特别说明:这里这个是 IDEA 2021 创建项目的操纵步调:
我们首先创建一个空的工程

工程名称是mp

创建springboot模块


这里我们选择springboot2.7.8的版本,并不勾选依赖,随后通过pom.xml手动添加


特别说明:下面这个是:IDEA 2024 的操纵设置








2. 入门设置第一个 MyBatis-Plus 案例

第一步:  创建数据库 mybatisplus

这些测试表,是来自于 MyBatis-Plus 官网教学的内容,各人也可以移步去看看:✏️✏️✏️ https://baomidou.com/getting-started/

现有一张 User 表,其表结构如下:
idnameageemail1Jone18test1@baomidou.com2Jack20test2@baomidou.com3Tom28test3@baomidou.com4Sandy21test4@baomidou.com5Billie24test5@baomidou.com其对应的数据库 Schema 脚本如下:
  1. DROP TABLE IF EXISTS `user`;
  2. CREATE TABLE `user`
  3. (
  4.     id BIGINT NOT NULL COMMENT '主键ID',
  5.     name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
  6.     age INT NULL DEFAULT NULL COMMENT '年龄',
  7.     email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
  8.     PRIMARY KEY (id)
  9. );
复制代码
其对应的数据库 Data 脚本如下:
  1. DELETE FROM `user`;
  2. INSERT INTO `user` (id, name, age, email) VALUES
  3. (1, 'Jone', 18, 'test1@baomidou.com'),
  4. (2, 'Jack', 20, 'test2@baomidou.com'),
  5. (3, 'Tom', 28, 'test3@baomidou.com'),
  6. (4, 'Sandy', 21, 'test4@baomidou.com'),
  7. (5, 'Billie', 24, 'test5@baomidou.com');
复制代码

第二步: 引入相关依赖,在 pom.xml 文件当中设置我们所需要的 jar 依赖。
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4.     <modelVersion>4.0.0</modelVersion>
  5.     <parent>
  6.         <groupId>org.springframework.boot</groupId>
  7.         <artifactId>spring-boot-starter-parent</artifactId>
  8.         <version>2.5.3</version>
  9.         <relativePath/>
  10.     </parent>
  11.     <groupId>com.rainbowsea</groupId>
  12.     <artifactId>mp02</artifactId>
  13.     <version>0.0.1-SNAPSHOT</version>
  14.     <name>mp02</name>
  15.     <description>mp02</description>
  16.     <url/>
  17.     <licenses>
  18.         <license/>
  19.     </licenses>
  20.     <developers>
  21.         <developer/>
  22.     </developers>
  23.     <scm>
  24.         <connection/>
  25.         <developerConnection/>
  26.         <tag/>
  27.         <url/>
  28.     </scm>
  29.     <properties>
  30.         <java.version>8</java.version>
  31.     </properties>
  32.     <dependencies>
  33.         <dependency>
  34.             <groupId>org.springframework.boot</groupId>
  35.             <artifactId>spring-boot-starter</artifactId>
  36.         </dependency>
  37.         <dependency>
  38.             <groupId>org.springframework.boot</groupId>
  39.             <artifactId>spring-boot-starter-test</artifactId>
  40.             <scope>test</scope>
  41.         </dependency>
  42.         
  43.         <dependency>
  44.             <groupId>org.springframework.boot</groupId>
  45.             <artifactId>spring-boot-starter-web</artifactId>
  46.         </dependency>
  47.         
  48.         <dependency>
  49.             <groupId>mysql</groupId>
  50.             <artifactId>mysql-connector-java</artifactId>
  51.         </dependency>
  52.         
  53.         <dependency>
  54.             <groupId>org.projectlombok</groupId>
  55.             <artifactId>lombok</artifactId>
  56.         </dependency>
  57.         
  58.         <dependency>
  59.             <groupId>com.alibaba</groupId>
  60.             <artifactId>druid</artifactId>
  61.             <version>1.2.8</version>
  62.         </dependency>
  63.         
  64.         <dependency>
  65.             <groupId>com.baomidou</groupId>
  66.             <artifactId>mybatis-plus-boot-starter</artifactId>
  67.             <version>3.4.3</version>
  68.         </dependency>
  69.     </dependencies>
  70.     <build>
  71.         <plugins>
  72.             <plugin>
  73.                 <groupId>org.springframework.boot</groupId>
  74.                 <artifactId>spring-boot-maven-plugin</artifactId>
  75.             </plugin>
  76.         </plugins>
  77.     </build>
  78.     <repositories>
  79.         <repository>
  80.             <id>spring-snapshots</id>
  81.             <name>Spring Snapshots</name>
  82.             <url>https://repo.spring.io/snapshot</url>
  83.             <releases>
  84.                 <enabled>false</enabled>
  85.             </releases>
  86.         </repository>
  87.     </repositories>
  88.     <pluginRepositories>
  89.         <pluginRepository>
  90.             <id>spring-snapshots</id>
  91.             <name>Spring Snapshots</name>
  92.             <url>https://repo.spring.io/snapshot</url>
  93.             <releases>
  94.                 <enabled>false</enabled>
  95.             </releases>
  96.         </pluginRepository>
  97.     </pluginRepositories>
  98. </project>
复制代码
特别说明:这里我们,将 Spring boot 改为:2.5.3 版本的。


在:MyBatis-Plus 当中是包含了MyBatis 的依赖的。以是,引入了 MyBatis-Plus 也就引入了MyBatis了。

第三步: 编写该项目/模块的场景启动器:

第四步: 根据数据表创建对应的实体类:
  1. package com.rainbowsea.bean;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. @Data
  6. @NoArgsConstructor
  7. @AllArgsConstructor
  8. public class User {
  9.     private Long id;
  10.     private String name;
  11.     private Integer age;
  12.     private String email;
  13. }
复制代码
第五步: 切换数据库连接池为 Druid 。这里我们编写设置类的方式,切换数据库连接池。
  1. spring:
  2.   datasource:
  3.     driver-class-name: com.mysql.cj.jdbc.Driver
  4.     url: jdbc:mysql://localhost:3306/mybatisplus?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
  5.     username: root
  6.     password: MySQL123
复制代码
  1. package com.rainbowsea.config;
  2. import com.alibaba.druid.pool.DruidDataSource;
  3. import org.springframework.boot.context.properties.ConfigurationProperties;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. import javax.sql.DataSource;
  7. /**
  8. * 配置切换,Druid 数据库连接池
  9. */
  10. @Configuration  // 标志配置类
  11. public class DruidDataSourceConfig {
  12.     @Bean  // 被 Spring ioc 容器管理起来
  13.     @ConfigurationProperties(value = "spring.datasource")
  14.     public DataSource getDataSource() {
  15.         DruidDataSource druidDataSource = new DruidDataSource();
  16.         return druidDataSource;
  17.     }
  18. }
复制代码
特别说明:关于spring boot 中切换数据库连接池的具体内容,各人可以移步至:✏️✏️✏️  十六,Spring Boot 整合 Druid 以及使用 Druid 监控功能-CSDN博客
测试:看看我们是否成功切换为了 Druid 数据库连接池。
  1. import com.rainbowsea.bean.User;
  2. import com.rainbowsea.mapper.UserMapper;
  3. import com.rainbowsea.service.UserService;
  4. import org.junit.jupiter.api.Test;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.boot.test.context.SpringBootTest;
  7. import org.springframework.jdbc.core.JdbcTemplate;
  8. import javax.annotation.Resource;
  9. import java.util.List;
  10. @SpringBootTest(classes = Mp02Application.class)  // Spring Boot 当中的测试,必须要有 项目的启动场景,不然无法测试报错
  11. class Mp02ApplicationTests {
  12.     @Resource
  13.     private JdbcTemplate jdbcTemplate;
  14.     @Test
  15.     void contextLoads() {
  16.         System.out.println(jdbcTemplate.getDataSource().getClass());
  17.     }
  18. }
复制代码

第六步: 背面的都是对应 MyBatis-Plus 的内容上的重点内容。
编写 Mapper接口
  1. package com.rainbowsea.mapper;
  2. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  3. import com.rainbowsea.bean.User;
  4. import org.apache.ibatis.annotations.Mapper;
  5. @Mapper // 被Spring Boot 扫描到
  6. public interface UserMapper extends BaseMapper<User> {
  7. }
复制代码


我们的自己编写的 Mapper  接口 extends(继续) BaseMapper 接口就会拥有了其该接口下的方法。
第七步: 编写 Service 接口

  1. package com.rainbowsea.service;
  2. import com.baomidou.mybatisplus.extension.service.IService;
  3. import com.rainbowsea.bean.User;
  4. import java.util.List;
  5. public interface UserService extends IService<User> {
  6.     // 当 IService 当中提供的方法,不能满足我们的业务需要的时候,
  7.     // 我们可以自定义方法。
  8.     // 自定义的方法
  9.     List<User> selectAll();
  10. }
复制代码


第八步: 编写ServiceImpl

  1. package com.rainbowsea.service.Impl;
  2. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  3. import com.rainbowsea.bean.User;
  4. import com.rainbowsea.mapper.UserMapper;
  5. import com.rainbowsea.service.UserService;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Service;
  8. import javax.annotation.Resource;
  9. import java.util.Collections;
  10. import java.util.List;
  11. @Service
  12. public class UserServiceImpl extends ServiceImpl<UserMapper,User>
  13.         implements UserService  {
  14.     //@Resource
  15.     @Autowired  // 自动装配
  16.     private UserMapper userMapper;
  17.     // 对自定义方法的,重写实现
  18.     @Override
  19.     public List<User> selectAll() {
  20.         return userMapper.selectList(null);
  21.     }
  22. }
复制代码

它们之间的关系结构如下:


第九步:编写Controller 控制器:
  1. package com.rainbowsea.controller;
  2. import com.rainbowsea.bean.User;
  3. import com.rainbowsea.service.UserService;
  4. import org.springframework.web.bind.annotation.GetMapping;
  5. import org.springframework.web.bind.annotation.RestController;
  6. import javax.annotation.Resource;
  7. import java.util.List;
  8. @RestController
  9. public class UserController {
  10.     @Resource
  11.     private UserService userService;
  12.     @GetMapping(value = {"/selectList"})
  13.     public List<User> selectList() {
  14.         return userService.selectAll();
  15.     }
  16. }
复制代码
第十一步 :打开浏览器运行测试。

3. 补充说明:

3.1 通用 Mapper 接口先容

有关于 Mapper 接口,之前我们已经看到了,我们自己编写的Mapper接口继续 自己 BaseMapper 接口,由 BaseMapper 接口提供了很多单表的增删改查 相关的操纵方法,在入门案例种,我们测试了查询所有的操纵。我们先容一些简单的Mapper 接口中的方法,主要是感觉一下。Mapper接口中对于单表的增删改查的操纵都有涉及,更加高级的一些操纵。


3.1.1 Mapper 接口的 “增删改查”

3.1.1.1 查询所有记录

  1. import com.rainbowsea.bean.User;
  2. import com.rainbowsea.mapper.UserMapper;
  3. import com.rainbowsea.service.UserService;
  4. import org.junit.jupiter.api.Test;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.boot.test.context.SpringBootTest;
  7. import org.springframework.jdbc.core.JdbcTemplate;
  8. import javax.annotation.Resource;
  9. import java.util.List;
  10. @SpringBootTest(classes = Mp02Application.class)  // Spring Boot 当中的测试,必须要有 项目的启动场景,不然无法测试报错
  11. class Mp02ApplicationTests {
  12.     @Resource
  13.     private UserMapper userMapper;
  14.     // 查询所有
  15.     @Test
  16.     void selectList() {
  17.         List<User> users = userMapper.selectList(null);
  18.         for (User user : users) {
  19.             System.out.println(user);
  20.         }
  21.     }
  22. }
复制代码
3.1.1.2 插入一条数据

  1. import com.rainbowsea.bean.User;
  2. import com.rainbowsea.mapper.UserMapper;
  3. import com.rainbowsea.service.UserService;
  4. import org.junit.jupiter.api.Test;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.boot.test.context.SpringBootTest;
  7. import org.springframework.jdbc.core.JdbcTemplate;
  8. import javax.annotation.Resource;
  9. import java.util.List;
  10. @SpringBootTest(classes = Mp02Application.class)  // Spring Boot 当中的测试,必须要有 项目的启动场景,不然无法测试报错
  11. class Mp02ApplicationTests {
  12.     @Resource
  13.     private UserMapper userMapper;
  14.     // 简单添加
  15.     @Test
  16.     void insert() {
  17.         User user = new User();
  18.         user.setId(6L);
  19.         user.setAge(18);
  20.         user.setName("Lihua");
  21.         user.setEmail("test6@baomidou.com");
  22.         userMapper.insert(user);
  23.     }
  24. }
复制代码
3.1.1.3 删除一条数据

  1. import com.rainbowsea.bean.User;
  2. import com.rainbowsea.mapper.UserMapper;
  3. import com.rainbowsea.service.UserService;
  4. import org.junit.jupiter.api.Test;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.boot.test.context.SpringBootTest;
  7. import org.springframework.jdbc.core.JdbcTemplate;
  8. import javax.annotation.Resource;
  9. import java.util.List;
  10. @SpringBootTest(classes = Mp02Application.class)  // Spring Boot 当中的测试,必须要有 项目的启动场景,不然无法测试报错
  11. class Mp02ApplicationTests {
  12.     @Resource
  13.     private UserMapper userMapper;
  14.     // 简单删除
  15.     @Test
  16.     void deleteOne() {
  17.         userMapper.deleteById(4L);
  18.     }
  19. }
复制代码
3.1.1.4 更新一条数据

  1. import com.rainbowsea.bean.User;
  2. import com.rainbowsea.mapper.UserMapper;
  3. import com.rainbowsea.service.UserService;
  4. import org.junit.jupiter.api.Test;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.boot.test.context.SpringBootTest;
  7. import org.springframework.jdbc.core.JdbcTemplate;
  8. import javax.annotation.Resource;
  9. import java.util.List;
  10. @SpringBootTest(classes = Mp02Application.class)  // Spring Boot 当中的测试,必须要有 项目的启动场景,不然无法测试报错
  11. class Mp02ApplicationTests {
  12.     @Resource
  13.     private UserMapper userMapper;
  14.     // 简单更新
  15.     @Test
  16.     void updateById() {
  17.         User user = new User();
  18.         user.setId(2L);
  19.         user.setAge(18);
  20.         user.setName("李华");
  21.         user.setEmail("lihua@baomidou.com");
  22.         userMapper.updateById(user);
  23.     }
  24. }
复制代码
3.1.1.5 查询一条数据

  1. import com.rainbowsea.bean.User;
  2. import com.rainbowsea.mapper.UserMapper;
  3. import com.rainbowsea.service.UserService;
  4. import org.junit.jupiter.api.Test;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.boot.test.context.SpringBootTest;
  7. import org.springframework.jdbc.core.JdbcTemplate;
  8. import javax.annotation.Resource;
  9. import java.util.List;
  10. @SpringBootTest(classes = Mp02Application.class)  // Spring Boot 当中的测试,必须要有 项目的启动场景,不然无法测试报错
  11. class Mp02ApplicationTests {
  12.     @Resource
  13.     private UserMapper userMapper;
  14.     // 简单查询
  15.     @Test
  16.     void selectById() {
  17.         User user = userMapper.selectById(6L);
  18.         System.out.println(user);
  19.     }
  20. }
复制代码
3.2 通用 service接口先容

除了Mapper接口,MybatisPlus还提供了IService接口和对应的实现类ServiceImpl,该实现类已经提供好了一些对应的Service相关的方法,在某些场景下,我们可以直接使用ServiceImpl提供的方法,实现对应的功能。
IService接口

IService接口中包含了service相关的一些增删改查方法


ServiceImpl实现类

ServiceImpl实现类提供了service相关的增删改查方法的实现

UserService接口继续自IService接口

UserServiceImpl类继续ServiceImpl


注入UserService对象,测试相关方法

3.2.1 Service 接口的“增删改查”

3.2.1.1 添加一条记录

  1. import com.rainbowsea.bean.User;
  2. import com.rainbowsea.mapper.UserMapper;
  3. import com.rainbowsea.service.UserService;
  4. import org.junit.jupiter.api.Test;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.boot.test.context.SpringBootTest;
  7. import org.springframework.jdbc.core.JdbcTemplate;
  8. import javax.annotation.Resource;
  9. import java.util.List;
  10. @SpringBootTest(classes = Mp02Application.class)  // Spring Boot 当中的测试,必须要有 项目的启动场景,不然无法测试报错
  11. class Mp02ApplicationTests {
  12.     @Autowired
  13.     private UserService userService;
  14.    
  15.     //  UserService 添加
  16.     @Test
  17.     void insertService() {
  18.         User user = new User();
  19.         user.setId(7L);
  20.         user.setAge(18);
  21.         user.setName("Tom");
  22.         user.setEmail("Tom@baomidou.com");
  23.         userService.save(user);
  24.     }
  25. }
复制代码
3.2.1.2 删除一条记录

  1. import com.rainbowsea.bean.User;
  2. import com.rainbowsea.mapper.UserMapper;
  3. import com.rainbowsea.service.UserService;
  4. import org.junit.jupiter.api.Test;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.boot.test.context.SpringBootTest;
  7. import org.springframework.jdbc.core.JdbcTemplate;
  8. import javax.annotation.Resource;
  9. import java.util.List;
  10. @SpringBootTest(classes = Mp02Application.class)  // Spring Boot 当中的测试,必须要有 项目的启动场景,不然无法测试报错
  11. class Mp02ApplicationTests {
  12.     @Autowired
  13.     private UserService userService;
  14.     // UserService 删除
  15.     @Test
  16.     void deleteServie() {
  17.         userService.removeById(2L);
  18.     }
  19. }
复制代码
3.2.1.3 修改一条记录

  1. import com.rainbowsea.bean.User;
  2. import com.rainbowsea.mapper.UserMapper;
  3. import com.rainbowsea.service.UserService;
  4. import org.junit.jupiter.api.Test;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.boot.test.context.SpringBootTest;
  7. import org.springframework.jdbc.core.JdbcTemplate;
  8. import javax.annotation.Resource;
  9. import java.util.List;
  10. @SpringBootTest(classes = Mp02Application.class)  // Spring Boot 当中的测试,必须要有 项目的启动场景,不然无法测试报错
  11. class Mp02ApplicationTests {
  12.     @Autowired
  13.     private UserService userService;
  14.     // userService 修改
  15.     @Test
  16.     void updateService() {
  17.         User user = new User();
  18.         user.setId(3L);
  19.         user.setAge(22);
  20.         userService.updateById(user);
  21.     }
  22. }
复制代码
3.2.1.4 查询一条记录

  1. import com.rainbowsea.bean.User;
  2. import com.rainbowsea.mapper.UserMapper;
  3. import com.rainbowsea.service.UserService;
  4. import org.junit.jupiter.api.Test;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.boot.test.context.SpringBootTest;
  7. import org.springframework.jdbc.core.JdbcTemplate;
  8. import javax.annotation.Resource;
  9. import java.util.List;
  10. @SpringBootTest(classes = Mp02Application.class)  // Spring Boot 当中的测试,必须要有 项目的启动场景,不然无法测试报错
  11. class Mp02ApplicationTests {
  12.     @Autowired
  13.     private UserService userService;
  14.     // UserService 查询
  15.     @Test
  16.     void selectService() {
  17.         List<User> users = userService.selectAll();
  18.         for (User user : users) {
  19.             System.out.println(user);
  20.         }
  21.     }
  22. }
复制代码
3.3 自界说方法

MybatisPlus除了给我们提供了这些丰富的接口方法以外,对于我们自己的需求,也可以编写自界说的接口方法,我们通过自己编写SQL语句的形式,实现想要的SQL需求
3.3.1 自界说Mapper接口方法

Mapper接口中提供抽象方法
  1. package com.rainbowsea.mapper;
  2. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  3. import com.rainbowsea.bean.User;
  4. import org.apache.ibatis.annotations.Mapper;
  5. @Mapper // 被Spring Boot 扫描到
  6. public interface UserMapper extends BaseMapper<User> {
  7.     // 自定义方法
  8.   User selectByName(String name);
  9. }
复制代码
提供映射设置文件,提供对应的SQL语句
注意:对应的映射的 SQL 设置文件的路径/包要同等,以及名称也要同等,才行。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3.                 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4.                 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.rainbowsea.mapper.UserMapper" >
  6.         <select id="selectByName" resultType="com.rainbowsea.bean.User" parameterType="string">
  7.                 select id,age,name,email
  8.                 from user
  9.                 where name = #{value}
  10.         </select>
  11. </mapper>
复制代码
测试自界说的Mapper接口方法
  1. import com.rainbowsea.bean.User;
  2. import com.rainbowsea.mapper.UserMapper;
  3. import com.rainbowsea.service.UserService;
  4. import org.junit.jupiter.api.Test;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.boot.test.context.SpringBootTest;
  7. import org.springframework.jdbc.core.JdbcTemplate;
  8. import javax.annotation.Resource;
  9. import java.util.List;
  10. @SpringBootTest(classes = Mp02Application.class)  // Spring Boot 当中的测试,必须要有 项目的启动场景,不然无法测试报错
  11. class Mp02ApplicationTests {
  12.     @Resource
  13.     private UserMapper userMapper;
  14.     // 测试自定义方法
  15.     @Test
  16.     void myMethod() {
  17.         User tom = userMapper.selectByName("Lihua");
  18.         System.out.println(tom);
  19.     }
  20. }
复制代码
4. 总结:



6. 最后:

“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上罗致了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4