当前位置: 首页 > news >正文

Spring Boot Web 开发:MyBatis、数据库连接池、环境配置与 Lombok 全面解析

推荐一个AI网站,免费使用豆包AI模型,快去白嫖👉海鲸AI

1.0 MyBatis 概述
MyBatis 是一个优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 可以帮助我们将数据库操作抽象出来,使得我们的代码更加简洁、易读和易于维护。

2.0 数据库连接池
在实际的项目中,数据库连接是一个非常宝贵的资源。如果每次访问数据库都创建一个新的连接,那么将会导致性能下降和资源浪费。为了解决这个问题,我们可以使用数据库连接池。

2.1 数据库连接池的主要作用包括

  • 资源重用:连接池中可以维护一定数量的数据库连接,当需要访问数据库时,可以从连接池中获取一个连接,而不是创建一个新的连接,从而提高了资源的利用率。
  • 更快的响应时间:由于连接池中已经存在可用的连接,因此可以减少创建和销毁数据库连接的时间,从而提高了系统的响应速度。
  • 统一的管理:连接池可以对数据库连接进行统一的管理,包括连接的创建、释放、空闲时间等,从而避免了连接泄漏和资源浪费等问题。

2.2 如何切换数据库连接池?
在 Spring Boot 中,我们可以通过配置文件来切换数据库连接池。Spring Boot 支持多种数据库连接池,包括 HikariCP、Druid、C3P0 等。下面以 HikariCP 为例,介绍如何在 Spring Boot 中切换数据库连接池。

  • 在 pom.xml 文件中添加 HikariCP 的依赖:
<dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId><version>${hikaricp.version}</version>
</dependency>
  • 在 application.properties 文件中配置 HikariCP:
# 数据源基本配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root# HikariCP 连接池配置
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.connection-timeout=30000

3.0 配置环境
在使用 MyBatis 之前,我们需要配置好相关的环境。下面以 MySQL 为例,介绍如何在 Spring Boot 中配置 MyBatis。

  • 在 pom.xml 文件中添加 MyBatis 和 MySQL 的依赖:
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis-spring-boot-starter.version}</version>
</dependency>
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql-connector-java.version}</version>
</dependency>
  • 在 application.properties 文件中配置数据库连接信息:
# 数据源基本配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root# MyBatis 配置
mybatis.mapper-locations=classpath:mappers/*.xml

4.0 Lombok 工具包
Lombok 是一个非常实用的 Java 工具包,它可以通过注解的方式来简化 Java 代码的编写。Lombok 提供了一系列的注解,例如@Data、@ToString、@EqualsAndHashCode 等,可以自动生成 Java 类的 getter、setter、toString、equals 和 hashCode 等方法。

4.1 如何导入到项目中呢?
在 Spring Boot 项目中使用 Lombok,只需要在 pom.xml 文件中添加 Lombok 的依赖即可。

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version>
</dependency>

然后在需要使用 Lombok 的 Java 类上添加@Data、@ToString、@EqualsAndHashCode 等注解即可。

5.0 application 属性文件数据库连接的信息与 pom XML文件的依赖
在 Spring Boot 中,application.properties 文件用于配置应用程序的属性信息,包括数据库连接信息、日志级别、服务器端口等。pom.xml 文件用于配置项目的依赖信息,包括 MyBatis、Lombok 等。

在实际的项目开发中,我们需要根据项目的需求来配置 application.properties 文件和 pom.xml 文件。例如,如果我们需要使用 MySQL 数据库,那么我们需要在 application.properties 文件中配置数据库连接信息,在 pom.xml 文件中添加 MySQL 的依赖。如果我们需要使用 MyBatis 框架,那么我们需要在 pom.xml 文件中添加 MyBatis 的依赖,在 application.properties 文件中配置 MyBatis 的相关信息。

下面是一个示例的 application.properties 文件:

# 数据源基本配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root# MyBatis 配置
mybatis.mapper-locations=classpath:mappers/*.xml# 日志级别
logging.level.root=INFO

下面是一个示例的 pom.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>11</java.version><mybatis-spring-boot-starter.version>2.1.4</mybatis-spring-boot-starter.version><mysql-connector-java.version>8.0.26</mysql-connector-java.version><lombok.version>1.18.22</lombok.version></properties><dependencies><!-- Spring Boot 核心依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><!-- Mybatis 依赖 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><!-- MySQL 驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- Lombok 依赖 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

以上就是关于 Spring Boot Web 篇-深入了解 MyBatis 概念、数据库连接池、环境配置和 Lombok 工具包的技术文章,希望对你有所帮助。

推荐一个AI网站,免费使用豆包AI模型,快去白嫖👉海鲸AI

相关文章:

  • C语言基础-静态变量(static)
  • 在win10中自动删除文件夹中特定的文件
  • 算法训练营第三十六天 | LeetCode 1005 K次取反后最大化的数组、LeetCode 134 加油站
  • 影响Oracle数据库打开速度的因素
  • 【go从入门到精通】精通并发编程-使用扇入扇出提升多个通道之间传递数据的效率
  • 【三数之和】python,排序+双指针
  • MySQL 视图(1)
  • 10、SpringBoot 源码分析 - 自动配置深度分析三
  • Git系列:git init 深入理解及其使用技巧
  • vmware 安装系统提示无法启用3D加速的解决
  • Linux基础 -- perf工具使用及加载符号表
  • c语言:利用随机函数产生20个[120, 834] 之间互不相等的随机数, 并利用选择排序法将其从小到大排序后输出(每行输出5个)
  • 基于双向长短期记忆 Bi-LSTM 对消费者投诉进行多类分类
  • RS8751XF功能和参数介绍及PDF资料
  • springboot webservice接口一个配置文件配置两个接口路径
  • Angular 2 DI - IoC DI - 1
  • gops —— Go 程序诊断分析工具
  • js 实现textarea输入字数提示
  • Laravel 菜鸟晋级之路
  • Linux各目录及每个目录的详细介绍
  • mysql外键的使用
  • Spark学习笔记之相关记录
  • SpingCloudBus整合RabbitMQ
  • spring-boot List转Page
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • tweak 支持第三方库
  • uni-app项目数字滚动
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 删除表内多余的重复数据
  • 设计模式走一遍---观察者模式
  • 手写一个CommonJS打包工具(一)
  • 小而合理的前端理论:rscss和rsjs
  • Semaphore
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​queue --- 一个同步的队列类​
  • ​如何在iOS手机上查看应用日志
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #Linux(make工具和makefile文件以及makefile语法)
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #LLM入门|Prompt#3.3_存储_Memory
  • (13):Silverlight 2 数据与通信之WebRequest
  • (Ruby)Ubuntu12.04安装Rails环境
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (二)构建dubbo分布式平台-平台功能导图
  • (七)Knockout 创建自定义绑定
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (三)mysql_MYSQL(三)
  • (十五)使用Nexus创建Maven私服
  • (循环依赖问题)学习spring的第九天
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)Java算法:二分查找
  • (转)Linux整合apache和tomcat构建Web服务器
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?