对于数据访问层 无论是SQL数据库还是NOSQL数据库 Spring Boot默认采用整合Spring Data的方式进行了统一的处理
且Spring Data里添加了大量的自动配置 还引入各种Template和Repository来简化对数据访问层的操作 大大方便了开发者
因而 只需进行简单的设置即可
一、配置及使用JDBC与Template
1、配置使用JDBC
步骤很简单 三部曲:
- 1、引入starter:spring-boot-starter-jdbc
- 2、配置application.yml
- 3、测试
项目若是用SpringBoot的Initializer启动器来创建的话 添加MySQL的Driver和JDBC即可:
若手动创建项目引入依赖 则需引入:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
然后 是配置
yml配置:
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://数据库ip:3306/数据库名
driver-class-name: com.mysql.cj.jdbc.Driver
然后就可以简单测试了
在测试的时候 若报错:
java.sql.SQLException: The server time zone value ‘�й���ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the ‘serverTimezone’ configuration property) to use a more specifc time zone value if you want to utilize time zone support.
那么 在配置文件的url后面加上?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
即可
所有的配置信息都在DataSourceProperties这个类中
自动配置的原理是org.springframework.boot.autoconfigure.jdbc包下的DataSourceConfiguration类 用于根据配置来判断使用何种数据源
可在配置文件中用spring.datasource.type
来指定数据源的类型
SpringBoot 2.x新版本默认内置支持以下三种数据源:
- org.apache.tomcat.jdbc.pool.DataSource
- HikariDataSource
- org.apache.commons.dbcp2.Basic