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);
    }

}
相关推荐
桦说编程3 小时前
Java 中如何创建不可变类型
java·后端·函数式编程
lifallen3 小时前
Java Stream sort算子实现:SortedOps
java·开发语言
IT毕设实战小研3 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
记忆不曾留4 小时前
Mybatis 源码解读-SqlSession 会话源码和Executor SQL操作执行器源码
mybatis·二级缓存·sqlsession会话·executor执行器·一级缓存localcache
没有bug.的程序员4 小时前
JVM 总览与运行原理:深入Java虚拟机的核心引擎
java·jvm·python·虚拟机
一只爱撸猫的程序猿4 小时前
使用Spring AI配合MCP(Model Context Protocol)构建一个"智能代码审查助手"
spring boot·aigc·ai编程
甄超锋5 小时前
Java ArrayList的介绍及用法
java·windows·spring boot·python·spring·spring cloud·tomcat
阿华的代码王国5 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
Zyy~5 小时前
《设计模式》装饰模式
java·设计模式
A尘埃5 小时前
企业级Java项目和大模型结合场景(智能客服系统:电商、金融、政务、企业)
java·金融·政务·智能客服系统