Spring Boot 整合MyBatis-Plus 详解

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

全新的 MyBatis-Plus 3.0 版本基于 JDK8,提供了 lambda 形式的调用,所以安装集成 MP3.0 要求如下:

  • JDK 8+
  • Maven or Gradle
  • Spring Boot 2.5+
  • MySql、Oracle、SQLServer、、

一、数据表设计

|--------|----------|---------|---------|-----------|
| ID | Name | Sex | Age | Grade |
| 1 | 小明 | 男 | 12 | 6 |
| 2 | 小红 | 女 | 11 | 6 |

建表语句如下:

复制代码
DROP TABLE IF EXISTS `user`;

CREATE TABLE `user`
(
    id BIGINT NOT NULL COMMENT '主键ID',
    name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
    sex VARCHAR(30) NULL DEFAULT NULL COMMENT '性别',
    age INT NULL DEFAULT NULL COMMENT '年龄',
    grade VARCHAR(50) NULL DEFAULT NULL COMMENT '年级',
    PRIMARY KEY (id)
);

然后插入数据:

复制代码
INSERT INTO `user` (id, name, age, email) VALUES
(1, '小明', '男',12, 6),
(2, '小红', '女',11, 6),

二、开发实例

1、引入依赖

复制代码
  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.1.5</version>
        <relativePath/>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
            <version>3.5.4<version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.26</version>
        </dependency>
    </dependencies>

2、配置数据源

application.yaml 中配置相关配置信息:

复制代码
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/Doker
    username: root
    password: root

3、开发实例

3.1 实体类

复制代码
@Data
@TableName("`user`")
public class User {
   @TableId(type = IdType.AUTO)
    private Long id;
  @TableField("name")
    private String name;
    private String sex;
    private Integer age;
    private String grade;
}

TableName:

  • 描述:表名注解,标识实体类对应的表
  • 使用位置:实体类

TableId

  • 描述:主键注解
  • 使用位置:实体类主键字段

TableField:

  • 描述:字段注解(非主键)

3.2 UserMapper接口

复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.UserMapper">
 SELECT * FROM `user` WHERE `name` = #{name}
</mapper>

public interface UserMapper extends BaseMapper<User> {
   @Select("select * from user")
    List<User> getAllUser();

}

3.3 Service层接口

复制代码
import com.baomidou.mybatisplus.extension.service.IService;
 
// UserService 继承 IService 接口
public interface UserService  extends IService<User>{

List<User> getAllUser();
}

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {

    @Autowired
    private UserMapper userMapper;
    public List<User> getAllUser()
  {
    return userMapper.getAllUser();

   }
}

3.4 在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹:

复制代码
@SpringBootApplication
@MapperScan("com.mapper")
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}
相关推荐
覆东流9 小时前
7.Java数组
java·开发语言·后端
m0_719084119 小时前
限流和获取请求ip的方法
java
lzhdim9 小时前
提高 SQL 语句执行速度的方法
java·开发语言·数据库·sql·oracle
深漂的华哥10 小时前
Ruoyi-Plus前后端分离场景下,数据加密传输
java·spring boot·后端·开源·maven·ruoyi
晚染烟11 小时前
每日八股day31
mybatis
落魄大学生之流水线上谋生计11 小时前
Java锁全面指南:从基础概念到企业级应用
java·开发语言
剑胆琴心静水深流12 小时前
全栈之路6---web集成与呈现
前端·vue.js·spring boot·分布式·spring·前端框架·npm
爱学习的小白柏12 小时前
【AI问数技术】多Agent协同架构:查询规划/SQL生成/洞察分析/报告生成
java·网络·人工智能·windows·sql·架构·llama
码匠许师傅13 小时前
【C++ 面试真题】30. 聊聊 C++ 的互斥锁与读写锁
java·c++·面试
沙盘客13 小时前
AFSIM 示例解读(03)· 六自由度飞行仿真 six_dof(下):机场运作与弹道导弹投送
java·javascript·经验分享