首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >中高级程序员可能都不会使用spring-boot-starter-jdbc访问MySQL

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

作者头像
IT大咖说
发布2022-05-25 13:10:26
8180
发布2022-05-25 13:10:26
举报
文章被收录于专栏:IT大咖说IT大咖说IT大咖说

◆ 使用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{},当出现数据异常时,事务就不回滚了,所以如果想要回滚异常事务,必须要主动将异常抛出来。

来源:

https://www.toutiao.com/article/7099702635636408864/?log_from=dd0ee51311cea_1653293128643

“IT大咖说”欢迎广大技术人员投稿,投稿邮箱:aliang@itdks.com

来都来了,走啥走,留个言呗~

 IT大咖说  |  关于版权

由“IT大咖说(ID:itdakashuo)”原创的文章,转载时请注明作者、出处及微信公众号。投稿、约稿、转载请加微信:ITDKS10(备注:投稿),茉莉小姐姐会及时与您联系!

感谢您对IT大咖说的热心支持!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT大咖说 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ◆ 使用spring-boot-starter-jdbc访问MySQL
  • ◆1.引入Maven依赖
  • ◆2.配置数据源
  • ◆3.自定义DataSource配置
  • ◆4.连接池的选择
  • ◆5.JdbcTemplate访问数据库
  • ◆6.事务的支持
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档