SpringBoot 配置数据库
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&password=root&useUnicode=true&characterEncoding=gbk&autoReconnect=true&failOverReadOnly=false
& 表示&
更多参数可以查阅官方文档,或者下面这篇文章。
传送门
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 配置数据库相关推荐
- MySQL—Linux查看客户端连接信息(连接数、进程等)及SpringBoot配置数据库模板
关注微信公众号:CodingTechWork,一起学习进步. 介绍 在开发或者运维过程中,我们连接数据库的时候突然会遇到"Too many Connections"这种报错信息 ...
- SpringBoot使用数据库
这一篇简单介绍一下SpringBoot配置数据库的配置(依赖和application.properties),以下全是以本地数据库为例子,具体用户名密码地址都根据实际去修改. Mysql数据库: po ...
- SpringBoot重复配置数据库导致Access denied for user ‘root‘@‘localhost‘ (using password: YES)
项目是SpringBoot+Mybatis,数据库相关的连接交由spring管理了(没有整合SpringBoot时数据库相关的内容需要配置在Mybatis的总配置文件里),直接写在applicatio ...
- springboot配置多源数据库
springboot 配置多源数据库 springboot+druid+mybatis-plus+dynamic配置多源数据库 主要依赖包 spring-boot-starter-web mybati ...
- SpringBoot配置多数据源数据库
** 一.SpringBoot + Druid + Mybatisplus 使用注解整合 ** 主要依赖包: spring-boot-starter-web mybatis-plus-boot-sta ...
- 【机房报修管理系统】后端篇(九) 在SpringBoot配置非关系型数据库Redis
原 [机房报修管理系统]后端篇(九) 在SpringBoot配置非关系型数据库Redis 2019年01月10日 14:18:48 CheungChingYin 阅读数:15 一.前情提要 在上一篇文 ...
- springboot配置Redis哨兵主从服务 以及 Redis 集群
redis哨兵集群配置 Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从 ...
- SpringBoot配置属性之NOSQL
SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...
- springboot配置Druid数据源
springboot配置druid数据源 Author:SimpleWu springboot整合篇 前言 对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringDa ...
最新文章
- CVE-2013-2551漏洞成因与利用分析(ISCC2014 PWN6)
- linux 0地址的妙用
- python过滤多个开头结尾
- 中国节能减排行业十四五运行现状及建设应用价值分析报告2021-2027年
- cacls 使用方法
- 2017西安交大ACM小学期 有趣异或[Trie树]
- 利用gensim在simulink中建立神经网络模型
- python 公开课_【python公开课|学好python前,必须掌握这篇Python for 循环语句,还不会就快来看看】- 环球网校...
- 简单二阶有源滤波电路分析
- _ASSERTE(_CrtIsValidHeapPointer(block))
- FreeSWITCH 呼叫两个座机并互联(ESL实现)
- 微淼商学院php面试_微淼商学院校友故事:培养财商,生活会越过越好
- Javascript 声明时用“var”跟不用var的区别
- EXP4恶意代码分析 20154306 刘宇轩
- Windows驱动学习第一步,第一个Windows驱动
- Tomcat部署war包项目
- $.ajax异步请求总结
- Android+Sqlite 实现古诗阅读应用(一)
- Android 上面的定位和Poi检索
- 设计模式——门面模式
热门文章
- 诗词大全给力版_6大版本语文课本大比拼,看哪个省背的课文最多?
- Android社区物业便民服务小区APP毕业设计
- 9\13、14python学习
- java怎么制作一个窗口(精)
- 怎么读研究生才能对得起学费
- Linux Shell 录制并回放终端会话
- Android修行手册之Kotlin - 自定义View的几种写法
- Vue 绑定Class增加容器的高度
- C语言按位逻辑运算符总结-与、或、非、异或
- ElasticSearch入门简介、安装ES(安装Kibana和IK分词器)使用 Postman连接ES进行测、ESRestAPI(操作索引CRUD操作文档CRUD)、练习