百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

中高级程序员可能都不会使用spring-boot-starter-jdbc访问MySQL

ztj100 2025-04-02 00:35 32 浏览 0 评论

使用spring-boot-starter-jdbc访问MySQL

MySQL是目前项目中广泛运用的关系数据库,直接使用JDBC访问MySQL是经常使用的技术方式。MySQL所使用的SQL是访问数据库最常用的标准化语言。由于开源、体积小、速度快、总体拥有成本低等特点,一般后台企业应用开发都会选择MySQL作为数据库。

本节我们通过对JDBC与MySQL访问来了解Spring Data提供的访问数据库的不同解决方案。Spring Boot自动配置了数据访问的基础设施,我们需要直接或者间接地依赖Spring-JDBC组件包,一旦Spring-JDBC位于Spring Boot应用的classpath路径,就会触发数据访问相关的自动配置行为,最简单的做法就是把spring-boot-starter-jdbc添加为应用的依赖。

Spring提供了JdbcTemplate来对数据库访问技术JDBC进行封装,包括管理数据库连接、简单查询结果映射到Java对象、复杂结果集通过实现RowMapper接口映射到Java对象。默认情况下,如果没有配置数据源,Spring Boot会自动配置一个内嵌的数据库的DataSource。通常情况下,我们会自己配置数据源,Spring Boot提供自动配置能力,根据配置参数对DataSource进行自定义配置,下面是接入步骤。

1.引入Maven依赖

集成MySQL数据库之前,我们需要在项目的POM文件中添加MySQL所需的依赖,具体代码如下:

2.配置数据源

在Spring Boot中,只要配置好数据源DataSource,就能自动使用JdbcTemplate。下面是一个多数据源的配置——application.XML配置文件,代码如下:

3.自定义DataSource配置

注 意 : @Primary 注 解 的 作 用 是 保 证 项 目 中 只 有 一 个 主 的DataSourceProperties Bean。

4.连接池的选择

在Sping Boot 2.0之后默认使用Hikari数据库连接池,可以不再用Druid、c3p0等连接池了。Hikari的优势是其高效的性能和并发性,无须主动引入HikariCP的依赖。因为在Spring Boot 2.X中,spring-boot-starter-jdbc 默 认 引 入 HikariCP 依 赖 。 在application.yml中,添加HikariCP配置如下:

如果你的项目对监控要求高于性能需求,则可以使用Druid数据库连接池。Druid提供了强大的监控功能,Druid已经在阿里巴巴部署了超过600个应用,经历过一年多生产环境大规模部署的严苛考验。可以引 用 Druid 的 starter 依 赖 : druid-spring-boot-starter , 然 后 在application.yml中,添加Druid配置如下:

Druid的监控功能使用如下。

● 通过
spring.datasource.filter.stat配置StatFilter,实现统计监控信息。

● 通 过
spring.datasource.filter.stat-view-servlet 配 置StatViewServlet,提供监控信息的HTML页面和JSON API。

● 启动项目后,访问http://127.0.0.1:8080/druid地址,可以看到监控页面。

5.JdbcTemplate访问数据库

使用JdbcTemplate自带的CRUD功能,@Repository是Spring提供的注解,作用于类,同@Service、@Component注解功能类似。

JdbcTemplate主要提供以下5类方法。

● execute方法:用于执行任何SQL语句,一般用于执行DDL语句。

● update方法:用于执行新增、修改、删除等语句。

● batchUpdate方法:用于执行批处理相关语句。

● query方法及queryForXXX方法:用于执行查询相关语句。

● call方法:用于执行存储过程、函数相关语句。

6.事务的支持

Spring Boot中Maven依赖中添加了spring-boot-starter-jdbc依赖,就是可以实现对事务的支持,只需要在Dao业务层添加事务注解@Transactional即可。

注 意 : rollbackFor( 触 发 回 滚 异 常 ) , 默 认 是RuntimeException 和 Erro ( unchecked 异 常 ) 。 在 默 认 情 况 下 ,Spring框架只在抛出运行时和不可检查异常时才会对事务回滚。

● 如果你想让checked异常也回滚,注解方式如下:

● 如果你想让unchecked异常也不回滚,注解方式如下:

● 不需要事务管理的方法如下:

另外,如果你在业务方法中使用了try{}catch{},当出现数据异常时,事务就不回滚了,所以如果想要回滚异常事务,必须要主动将异常抛出来。

本文给大家讲解的内容是微服务数据架构,数据分类及存储特性,使用spring-boot-starter-jdbc访问MySQL

  1. 下篇文章给大家讲解的内容是微服务数据架构,数据分类及存储特性, SpringORM框架访问数据库
  2. 觉得文章不错的朋友可以转发此文关注小编;
  3. 感谢大家的支持!

相关推荐

其实TensorFlow真的很水无非就这30篇熬夜练

好的!以下是TensorFlow需要掌握的核心内容,用列表形式呈现,简洁清晰(含表情符号,<300字):1.基础概念与环境TensorFlow架构(计算图、会话->EagerE...

交叉验证和超参数调整:如何优化你的机器学习模型

准确预测Fitbit的睡眠得分在本文的前两部分中,我获取了Fitbit的睡眠数据并对其进行预处理,将这些数据分为训练集、验证集和测试集,除此之外,我还训练了三种不同的机器学习模型并比较了它们的性能。在...

机器学习交叉验证全指南:原理、类型与实战技巧

机器学习模型常常需要大量数据,但它们如何与实时新数据协同工作也同样关键。交叉验证是一种通过将数据集分成若干部分、在部分数据上训练模型、在其余数据上测试模型的方法,用来检验模型的表现。这有助于发现过拟合...

深度学习中的类别激活热图可视化

作者:ValentinaAlto编译:ronghuaiyang导读使用Keras实现图像分类中的激活热图的可视化,帮助更有针对性...

超强,必会的机器学习评估指标

大侠幸会,在下全网同名[算法金]0基础转AI上岸,多个算法赛Top[日更万日,让更多人享受智能乐趣]构建机器学习模型的关键步骤是检查其性能,这是通过使用验证指标来完成的。选择正确的验证指...

机器学习入门教程-第六课:监督学习与非监督学习

1.回顾与引入上节课我们谈到了机器学习的一些实战技巧,比如如何处理数据、选择模型以及调整参数。今天,我们将更深入地探讨机器学习的两大类:监督学习和非监督学习。2.监督学习监督学习就像是有老师的教学...

Python教程(三十八):机器学习基础

...

Python 模型部署不用愁!容器化实战,5 分钟搞定环境配置

你是不是也遇到过这种糟心事:花了好几天训练出的Python模型,在自己电脑上跑得顺顺当当,一放到服务器就各种报错。要么是Python版本不对,要么是依赖库冲突,折腾半天还是用不了。别再喊“我...

超全面讲透一个算法模型,高斯核!!

...

神经网络与传统统计方法的简单对比

传统的统计方法如...

AI 基础知识从0.1到0.2——用“房价预测”入门机器学习全流程

...

自回归滞后模型进行多变量时间序列预测

下图显示了关于不同类型葡萄酒销量的月度多元时间序列。每种葡萄酒类型都是时间序列中的一个变量。假设要预测其中一个变量。比如,sparklingwine。如何建立一个模型来进行预测呢?一种常见的方...

苹果AI策略:慢哲学——科技行业的“长期主义”试金石

苹果AI策略的深度原创分析,结合技术伦理、商业逻辑与行业博弈,揭示其“慢哲学”背后的战略智慧:一、反常之举:AI狂潮中的“逆行者”当科技巨头深陷AI军备竞赛,苹果的克制显得格格不入:功能延期:App...

时间序列预测全攻略,6大模型代码实操

如果你对数据分析感兴趣,希望学习更多的方法论,希望听听经验分享,欢迎移步宝藏公众号...

AI 基础知识从 0.4 到 0.5—— 计算机视觉之光 CNN

...

取消回复欢迎 发表评论: