SpringBoot 配置数据库

1.yml配置mysql

导入依赖

            <!--数据库配置--><dependency>        <!--mysql驱动--><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.25</version></dependency><dependency>       <!--使用默认数据源--><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId><version>2.5.0</version></dependency>

配置文件

spring:datasource: #数据源driver-class-name: com.mysql.cj.jdbc.Driver #数据库驱动url: jdbc:mysql://localhost:3306/数据库名称?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai  # 数据库的 JDBC URLusername:    #数据库的登录用户名password:    #数据库的登录密码

2.JDBC-URL的参数详解

mysql JDBC URL格式如下:

jdbc:mysql://[host:port],[host:port].../[database][?参数名1][=参数值1][&参数名2][=参数值2]...

常见的参数

参数名称 参数说明 缺省值 最低版本要求
user 数据库用户名(用于连接数据库) 所有版本
password 用户密码(用于连接数据库) 所有版本
useUnicode 是否使用Unicode字符集,如果参数characterEncoding设置为gb2312或gbk,本参数值必须设置为true false 1.1g
characterEncoding 当useUnicode设置为true时,指定字符编码。比如可设置为gb2312或gbk false 1.1g
autoReconnect 当数据库连接异常中断时,是否自动重新连接? false 1.1
autoReconnectForPools 是否使用针对数据库连接池的重连策略 false 3.1.3
failOverReadOnly 自动重连成功后,连接是否设置为只读? true 3.0.12
maxReconnects autoReconnect设置为true时,重试连接的次数 3 1.1
initialTimeout autoReconnect设置为true时,两次重连之间的时间间隔,单位:秒 2 1.1
connectTimeout 和数据库服务器建立socket连接时的超时,单位:毫秒。 0表示永不超时,适用于JDK 1.4及更高版本 0 3.0.1
socketTimeout socket操作(读写)超时,单位:毫秒。 0表示永不超时 0 3.0.1
serverTimezone 服务器时区设置 UTC

若服务器返回无效的时区。需要设置 ‘‘serverTimezone’’ 属性,serverTimezone=Asia/ShangHai

需要注意的是,在xml配置文件中,url中的&符号需要转义成&。比如在tomcat的server.xml中配置数据库连接池时,mysql jdbc url样例如下:


jdbc:mysql://localhost:3306/test?user=root&amp;password=root&amp;useUnicode=true&amp;characterEncoding=gbk&amp;autoReconnect=true&amp;failOverReadOnly=false

&amp; 表示&

更多参数可以查阅官方文档,或者下面这篇文章。

传送门

3.测试

@SpringBootTest
class DemoDatasourceApplicationTests {@AutowiredDataSourceProperties dataSourceProperties;@Autowiredprotected ApplicationContext applicationContext;@AutowiredJdbcTemplate jdbcTemplate;@Testvoid contextLoads() {DataSource dataSource = applicationContext.getBean(DataSource.class); //获取数据源System.out.println(dataSource);System.out.println(dataSource.getClass().getName()); System.out.println(dataSourceProperties);//JdbcTemplate 已经封装一层函数可以直接使用.List<Map<String, Object>> list = jdbcTemplate.queryForList("select * from dept");for (Map<String, Object> stringObjectMap : list) {System.out.println(stringObjectMap);}}
}

4.输出结果

HikariDataSource (null)
com.zaxxer.hikari.HikariDataSource
org.springframework.boot.autoconfigure.jdbc.DataSourceProperties@2b38b1f{DEPTNO=10, DNAME=ACCOUNTING, LOC=NEW YORK}
{DEPTNO=20, DNAME=RESEARCH, LOC=DALLAS}
{DEPTNO=30, DNAME=SALES, LOC=CHICAGO}
{DEPTNO=40, DNAME=OPERATIONS, LOC=BOSTON}

说明Spring-Data 默认使用的是HikariDataSource 数据源。

5.总结

  • 导入数据源和JDBC驱动 的依赖包
  • 配置文件中配置数据库
  • 开始使用

SpringBoot 配置数据库相关推荐

  1. MySQL—Linux查看客户端连接信息(连接数、进程等)及SpringBoot配置数据库模板

    关注微信公众号:CodingTechWork,一起学习进步. 介绍   在开发或者运维过程中,我们连接数据库的时候突然会遇到"Too many Connections"这种报错信息 ...

  2. SpringBoot使用数据库

    这一篇简单介绍一下SpringBoot配置数据库的配置(依赖和application.properties),以下全是以本地数据库为例子,具体用户名密码地址都根据实际去修改. Mysql数据库: po ...

  3. SpringBoot重复配置数据库导致Access denied for user ‘root‘@‘localhost‘ (using password: YES)

    项目是SpringBoot+Mybatis,数据库相关的连接交由spring管理了(没有整合SpringBoot时数据库相关的内容需要配置在Mybatis的总配置文件里),直接写在applicatio ...

  4. springboot配置多源数据库

    springboot 配置多源数据库 springboot+druid+mybatis-plus+dynamic配置多源数据库 主要依赖包 spring-boot-starter-web mybati ...

  5. SpringBoot配置多数据源数据库

    ** 一.SpringBoot + Druid + Mybatisplus 使用注解整合 ** 主要依赖包: spring-boot-starter-web mybatis-plus-boot-sta ...

  6. 【机房报修管理系统】后端篇(九) 在SpringBoot配置非关系型数据库Redis

    原 [机房报修管理系统]后端篇(九) 在SpringBoot配置非关系型数据库Redis 2019年01月10日 14:18:48 CheungChingYin 阅读数:15 一.前情提要 在上一篇文 ...

  7. springboot配置Redis哨兵主从服务 以及 Redis 集群

    redis哨兵集群配置 Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从 ...

  8. SpringBoot配置属性之NOSQL

    SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...

  9. springboot配置Druid数据源

    springboot配置druid数据源 Author:SimpleWu springboot整合篇 前言 对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringDa ...

最新文章

  1. CVE-2013-2551漏洞成因与利用分析(ISCC2014 PWN6)
  2. linux 0地址的妙用
  3. python过滤多个开头结尾
  4. 中国节能减排行业十四五运行现状及建设应用价值分析报告2021-2027年
  5. cacls 使用方法
  6. 2017西安交大ACM小学期 有趣异或[Trie树]
  7. 利用gensim在simulink中建立神经网络模型
  8. python 公开课_【python公开课|学好python前,必须掌握这篇Python for 循环语句,还不会就快来看看】- 环球网校...
  9. 简单二阶有源滤波电路分析
  10. _ASSERTE(_CrtIsValidHeapPointer(block))
  11. FreeSWITCH 呼叫两个座机并互联(ESL实现)
  12. 微淼商学院php面试_微淼商学院校友故事:培养财商,生活会越过越好
  13. Javascript 声明时用“var”跟不用var的区别
  14. EXP4恶意代码分析 20154306 刘宇轩
  15. Windows驱动学习第一步,第一个Windows驱动
  16. Tomcat部署war包项目
  17. $.ajax异步请求总结
  18. Android+Sqlite 实现古诗阅读应用(一)
  19. Android 上面的定位和Poi检索
  20. 设计模式——门面模式

热门文章

  1. 诗词大全给力版_6大版本语文课本大比拼,看哪个省背的课文最多?
  2. Android社区物业便民服务小区APP毕业设计
  3. 9\13、14python学习
  4. java怎么制作一个窗口(精)
  5. 怎么读研究生才能对得起学费
  6. Linux Shell 录制并回放终端会话
  7. Android修行手册之Kotlin - 自定义View的几种写法
  8. Vue 绑定Class增加容器的高度
  9. C语言按位逻辑运算符总结-与、或、非、异或
  10. ElasticSearch入门简介、安装ES(安装Kibana和IK分词器)使用 Postman连接ES进行测、ESRestAPI(操作索引CRUD操作文档CRUD)、练习