网站首页 > 博客文章 正文
使用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
- 下篇文章给大家讲解的内容是微服务数据架构,数据分类及存储特性, SpringORM框架访问数据库
- 觉得文章不错的朋友可以转发此文关注小编;
- 感谢大家的支持!
猜你喜欢
- 2024-10-17 SpringBoot+Vue3+MySQL集群 开发健康体检双系统(完结)
- 2024-10-17 再有人问你数据库连接池的原理,这篇文章甩给他!
- 2024-10-17 详解Spring Boot并发处理能力:理论与参数设置实践
- 2024-10-17 数据库连接池有什么用?springboot中如何使用?
- 2024-10-17 谈谈高并发系统的一些解决方案(高并发系统设计的三大目标)
- 2024-10-17 微服务事务管理艺术:Spring Boot 集成 Seata 深度指南
- 2024-10-17 阿里巴巴开源数据库jdbc连接池 Druid 1.1.18 发布
- 2024-10-17 【架构之路】提升后端接口性能的实战技巧
- 2024-10-17 「解密」有人要将“高并发”拉下“神坛”!
- 2024-10-17 MySQL连接优化是数据库性能调优的重要一环
你 发表评论:
欢迎- 369℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 368℃用AI Agent治理微服务的复杂性问题|QCon
- 359℃初次使用IntelliJ IDEA新建Maven项目
- 352℃Maven技术方案最全手册(mavena)
- 349℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 348℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 346℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 344℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)