Spring Boot 中使用 Mybatis Plus

server/2024/12/19 15:09:20/

Spring Boot 中使用 Mybatis Plus

在现代的企业级开发中,MyBatis Plus 是 MyBatis 的增强工具,它简化了很多常见的数据库操作。通过 Spring Boot 集成 MyBatis Plus,可以快速构建高效、简洁的数据库操作层。本文将介绍如何在 Spring Boot 项目中集成 MyBatis Plus。

1. 添加 Maven 依赖

在Spring Boot 项目的 pom.xml 文件中添加如下相关的依赖:

<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId>
</dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.7</version>
</dependency>

2. 在配置文件中加入相关配置

spring:datasource:url: jdbc:mysql://xxx.xxx.xxx.xxx:3306/test?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNullusername: rootpassword: xxxxxxhikari: # 数据库连接池minimum-idle: 5 # 连接池最小空闲连接数maximum-pool-size: 20 # 连接池最大连接数auto-commit: true # 自动提交从连接池中返回的连接idle-timeout: 30000 # 连接允许在连接池中闲置的最长时间pool-name: SpringBootDemo-HikariCP # 连接池的用户定义名称max-lifetime: 1800000 # 连接池中连接最长生命周期connection-timeout: 30000 # 等待来自连接池的连接的最大毫秒数connection-test-query: SELECT 1 # 连接池连接测试语句

3. 创建 Mybatis 配置类

// 扫描 Mapper 所在包路径
@MapperScan("com.xxxx.xxx")
@Configuration
public class MybatisPlusConfig {/*** 添加 Mybatis Plus 分页插件*/@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());return mybatisPlusInterceptor;}
}

4. 创建实体类

public class User {@TableId(type = IdType.AUTO)private Long id;private String name;private Integer age;@TableLogicprivate boolean isDeleted;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public boolean isDeleted() {return isDeleted;}public void setDeleted(boolean deleted) {isDeleted = deleted;}
}

5.创建Mapper

MyBatis Plus 提供了基础的 Mapper 接口,继承它即可拥有常用的增、删、改、查功能。

public interface UserMapper extends BaseMapper<User> {}

6. 创建 Service

Mybatis Plus 的 ServiceImpl 是实现了 IService 接口的抽象类, 对 Mapper 进行了增强封装

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

Service接口层

public interface UserService extends IService<User> {}

7. 结论

本文介绍了如何在 Spring Boot 项目中集成 Mybatis Plus,Spring Boot 与 MyBatis Plus 的集成非常简单,通过自动配置和简洁的 API,可以大大减少开发中常见的数据库操作代码。MyBatis Plus 提供了很多实用的功能,如分页查询、条件构造、自动填充等,能大大提高开发效率。


http://www.ppmy.cn/server/151467.html

相关文章

vimdc

set nocompatible filetype on set rtp~/.vim/bundle/Vundle.vim call vundle#begin() " 这里根据自己需要的插件来设置&#xff0c;以下是我的配置 " " " YouCompleteMe:语句补全插件 set runtimepath~/.vim/bundle/YouCompleteMe autocmd InsertLe…

前端面试汇总(不定时更新)

目录 HTML & CSS1. XML、HTML、XHTML 有什么区别&#xff1f;⭐2. XML和JSON的区别&#xff1f;3. 是否了解W3C的规范&#xff1f;⭐4. 什么是语义化标签&#xff1f;⭐⭐5. 行内元素和块级元素的区别&#xff1f;⭐6. 行内元素和块级元素的转换&#xff1f;⭐7. 常用的块级…

前端知识点---字符串的函数

文章目录 1. length2. charAt(index)3. indexOf(searchValue, start)4. lastIndexOf(searchValue, start)5. slice(start, end)6. substring(start, end)7. substr(start, length)8. toUpperCase() 和 toLowerCase()9. trim()10. split(separator)11. replace(searchValue, new…

力扣hot100——哈希

1. 两数之和 class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {vector<int> ans;map<int, int> mp;for (int i 0; i < nums.size(); i) {if (mp.count(target - nums[i])) {ans.push_back(mp[target - nums[i]])…

scanf 缓冲区与输入处理机制

在C语言编程中&#xff0c;输入输出的问题常常让初学者感到困惑&#xff0c;尤其是scanf函数的行为特性。这篇文章将深入探讨scanf的工作原理&#xff0c;以及它与输入缓冲区之间的关系。相信读完后&#xff0c;您会对这个看似简单却暗藏玄机的话题有全新的认识。 缓冲区是操作…

XML Schema 复合类型 - 混合内容

XML Schema 复合类型 - 混合内容 XML Schema 是一种用于定义 XML 文档结构和内容的语言。在 XML Schema 中&#xff0c;复合类型是一种包含其他元素和/或属性的复杂类型。混合内容&#xff08;Mixed Content&#xff09;是复合类型的一种特殊形式&#xff0c;它允许元素包含其…

DP3复现代码运行逻辑全流程(六)—— gen_demonstration_adroit.sh 演示生成与可视化

用于生成演示、培训和评估的脚本都在 Scripts/ 文件夹中 DP3 通过 gen_demonstration 生成演示&#xff0c;即训练数据&#xff0c;例如: bash scripts/gen_demonstration_adroit.sh hammer 这将在 Adroit 环境中生成锤子任务的演示。数据将自动保存在 3D-Diffusion-Policy/…

深入探索Vue.js中的class绑定:动态样式管理的核心机制

深入探索Vue.js中的class绑定&#xff1a;动态样式管理的核心机制 引言 在现代Web开发中&#xff0c;动态样式管理是提升用户体验的关键。Vue.js提供了一种简洁而强大的方法来实现这一目标&#xff0c;即通过v-bind:class指令来绑定类名。本文将详细介绍v-bind:class指令的定…