(一)操作数据库

1.在pom.xml中引入相关的依赖

        <!-- 添加对jdbc 的依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- 添加数据库驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency>

2.在application.properties 全局配置文件中设置数据库的相关配置

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springboot
spring.datasource.username=root
spring.datasource.password=1234

3.测试代码(入口类)

/** 入口类 */
@SpringBootApplication(scanBasePackages = "com.jas")
public class SpringbootApplication {    public static void main(String[] args) throws Exception{ConfigurableApplicationContext context = SpringApplication.run(SpringbootApplication.class, args);System.out.println(context.getBean(DataSource.class).getClass());System.out.println(context.getBean(DataSource.class).getConnection());}
}

控制台输出

class org.apache.tomcat.jdbc.pool.DataSource
ProxyConnection[PooledConnection[com.mysql.jdbc.JDBC4Connection@511505e7]]

从上面的输出可以看出Spring Boot 默认使用的是tomcat 的数据源。

(二)自定义数据源

这里我们以c3p0 数据源为例,有两种配置数据源的方式,分别是:在全局配置文件中进行设置与使用配置类。

2.1在全局配置文件中配置

1.首先在pom.xml 中引入c3p0 的依赖

    <!-- 添加c3p0 数据源的依赖 --><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency>

2.在application.properties 中配置数据库信息与c3p0 数据源

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springboot
spring.datasource.username=root
spring.datasource.password=1234spring.datasource.type=com.mchange.v2.c3p0.ComboPooledDataSource

启动入口类控制台输出

class com.mchange.v2.c3p0.ComboPooledDataSource
com.mchange.v2.c3p0.impl.NewProxyConnection@64d43929

2.2使用配置类

1.在pom.xml 中引入c3p0 的依赖
2.在application.properties 中配置数据库信息,也可以写一个配置文件单独封装这些信息

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springboot
spring.datasource.username=root
spring.datasource.password=1234

3.配置类

@SpringBootConfiguration
public class DatasourceConfiguration {/*** environment 用于读取`application.properties` 配置文件中的配置信息*/@Autowiredprivate Environment environment;@Beanpublic DataSource createDataSource() throws Exception {ComboPooledDataSource dataSource = new ComboPooledDataSource();dataSource.setDriverClass(environment.getProperty("spring.datasource.driver-class-name"));dataSource.setJdbcUrl(environment.getProperty("spring.datasource.url"));dataSource.setUser(environment.getProperty("spring.datasource.username"));dataSource.setPassword(environment.getProperty("spring.datasource.password"));return dataSource;}
}

(三)事务管理

在Spring Boot 中使用事务,需要在入口类中使用@EnableTransactionManagement注解启用事务。
对需要进行事务管理的方法加上@Transactional注解。

PS:需要注意的是 @Transactional 注解默认只会对运行时异常(RuntimeException)起作用,对于I/O 等其他异常不起作用。对于其他方式的异常,Spring Boot 在@Transactional 注解中提供了rollbackFornoRollbackFor 选项,可以让我们自定义对异常的回滚。

    /*** rollbackFor 设置回滚的异常,Exception 可以回滚所有的异常,* noRollbackFor 设置不回滚事务的异常*/`@Transactional `(rollbackFor = Exception.class, noRollbackFor = NullPointerException.class )

另一个地方需要注意的是:在同一个类中一个没有设置注解的方法调用有注解的方法时,事务不生效。

Spring Boot 集成数据库相关推荐

  1. Spring Boot 集成 Flyway 实现数据库版本控制

    在项目迭代开发中,难免会有更新数据库 Schema 的情况,比如添加新表.在表中增加字段或者删除字段等,那么当我对数据库进行一系列操作后,如何快速地在其他同事的电脑上同步?如何在测试/生产服务器上快速 ...

  2. Spring Boot集成Quartz动态实现数据库任务

    1. Quartz简介 1.1. 什么是Quartz Quartz是一个开源的任务调度框架.作用是基于定时.定期的策略来执行任务. 它是OpenSymphony开源组织在Job scheduling领 ...

  3. 6.3 Spring Boot集成mongodb开发

    6.3 Spring Boot集成mongodb开发 本章我们通过SpringBoot集成mongodb,Java,Kotlin开发一个极简社区文章博客系统. 0 mongodb简介 Mongo 的主 ...

  4. Spring Boot 集成 Swagger 生成 RESTful API 文档

    原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...

  5. Spring Boot集成JPA的Column注解命名字段无效的问题

    偶然发现,Spring Boot集成jpa编写实体类的时候,默认使用的命名策略是下划线分隔的字段命名. Spring Boot版本:1.5.4.release 数据表: id int, userNam ...

  6. Kafka 入门和 Spring Boot 集成

    2019独角兽企业重金招聘Python工程师标准>>> Kafka 入门和 Spring Boot 集成 概述 kafka 是一个高性能的消息队列,也是一个分布式流处理平台(这里的流 ...

  7. Spring Boot 集成 Druid 监控数据源

    关注"Java后端技术全栈" 回复"面试"获取全套大厂面试资料 Druid 介绍 Druid 是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池.插件框架和 ...

  8. Spring Boot 集成 Mybatis 实现双数据源

    转载自   Spring Boot 集成 Mybatis 实现双数据源 这里用到了Spring Boot + Mybatis + DynamicDataSource配置动态双数据源,可以动态切换数据源 ...

  9. Spring Boot集成Redis缓存之模拟高并发场景处理

    前言 同样我们以上一篇文章为例子,搭建好环境之后,我欧美可以模拟高并发场景下,我们的缓存效率怎么样,到底能不能解决我们实际项目中的缓存问题.也就是如何解决缓存穿透? Spring Boot集成Redi ...

最新文章

  1. SAP QM初阶之检验批系统状态中的CTCM该如何消除?
  2. C语言编程时常犯十八个错误
  3. hive编程指南电子版_第三篇|Spark SQL编程指南
  4. 5 款可替代 du 命令的工具!
  5. leetcode-125-Valid Palindrome
  6. Java基础-异常处理机制
  7. Storm对DRPC权限控制Version1.0.1
  8. 获取批量导入数据后,所产生所有自增ID的值
  9. 从语言模型看Bert的善变与GPT的坚守
  10. 从java库学设计模式_java I/O库的设计模式
  11. STM32之红外接收
  12. 2016 最好的Bootstrap 管理模板
  13. JS获取屏幕宽度高度
  14. win7设置视力保护色
  15. python随机密码生成在26个字母中随机生成10个_习题6:二.3 随机密码生成
  16. 工具的服务端口已关闭。要使用命令行调用工具,请打开工具 - 设置 - 安全设置,将服务端口开启。
  17. 以图搜图(一):python aHash算法
  18. jenkins恢复assign roles
  19. 关于卸载Google浏览器后无法重装问题
  20. 无图言屌?YYImage 设计思路,实现细节剖析

热门文章

  1. Go——cron定时任务Demo
  2. uni-app——一种通过Nginx反向代理处理302重定向请求解决网络请求中无法获取Cookie的解决方案
  3. Spring Security——集成Spring Session、Redis和JSON序列化解决方案
  4. Cython——[FutureWarning: Cython directive ‘language_level’ not set, using 2 for now (Py2)]解决方案
  5. TensorFlow 教程——电影评论文本分类
  6. 浙江理工大学电信宽带校园网访问添加路由表命令(2020.10)(Windows和Liunx)
  7. 华硕老毛子(Padavan)——校园局域网路由表设置(校园网优先局域网访问)
  8. PHP——Array to string conversion 解决方案
  9. Recover it!
  10. 计算机考研只有数据结构,【择校必看】十三所计算机专业课只考数据结构的985院校!...