对于数据访问层,无论是哪种数据库,springBoot 底层都是采用Spring Data的方式统一处理各种的数据库,Spring Data也是Spring中的Spring Boot、Spring Cloud一样的知名项目;
Sping Data 官网:https://spring.io/projects/spring-data
数据库相关的启动器 : 可以参考官方文档:https://docs.spring.io/spring-boot/docs/2.1.7.RELEASE/reference/htmlsingle/#using-boot-starter
数据库启动器:
首先创建一个新项目,在创建项目时要注意导入依赖,
在项目创建成功后就会看到在 pom.xml 文件中找到,但是如果在创建项目的时候没有导入,就要在pom.xml中手动的添加依赖;
org.springframework.boot
spring-boot-starter-jdbc
org.springframework.boot
spring-boot-starter-web
mysql
mysql-connector-java
runtime
org.springframework.boot
spring-boot-starter-test
test
在连接数据库之后,编写数据库配置文件
编写配置是一定要注意时区问题
spring:
datasource:
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
#com.mysql.jdbc.Driver 是5版本的驱动
#com.mysql。cj.jdbc.Driver 是8版本的驱动
#?serverTimezone=UTC 解决时区的报错
url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
配置完成后,会发现有 driver-class-name: com.mysql.jdbc.Driver 的报错,是因为自己使用的是 5 版本的数据驱动,但是导入的是 8版本的驱动,只需要在pom.xml文件中将
mysql
mysql-connector-java
配置完成,就可以直接使用,因为springboot自动完成了我们之前封装的步骤,那么就可以进行测试
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootDataApplicationTests {
//数据源
@Autowired
//自动装配
DataSource dataSource;
@ Test
public void contextLoads() throws SQLException {
// 查看默认数据源 class com.zaxxer.hikari.HikariDataSource
System.out.println(dataSource.getClass());
//获取数据库连接
Connection connection = dataSource.getConnection();
System.out.println(connection);
// 关闭连接
connection.close();
}
}
在输出后,可以看到默认配置的数据源:class com.zaxxer.hikari.HikariDataSource,搜索一下就可以找到数据源的所有自动配置都在 :DataSourceProperties 文件下;
有了数据源就可以使用jdbc语句操作数据库;
数据库操作都是在 jdbcTemplate 中进行的
jdbcTemplate下面有提供了几种方法:
@RestController
public class JdbcController {
@Autowired
// jdbcTemplate 是springboot的核心文件 用来简化数据库操作,内部定义了很多避免错误的机制
// springboot默认提供了数据源com.zaxxer.hikari.HikariDataSource
// springboot自动注入数据源,使用它不用管理数据源,也不用管理关闭问题
JdbcTemplate jdbcTemplate;
@GetMapping("/query")
public List
以上代码编译运行测试:
增加测试就可以看到添加成功,在数据库里面可以查看到已经添加好了
SpringBoot使用jdbc操作数据库的步骤: