一、引言
大部分系统都离不开数据访问,数据库包括SQL和NOSQL,SQL是指关系型数据库,常见的有SQL Server,Oracle,MySQL(开源),NOSQL是泛指非关系型数据库,常见的有MongoDB,Redis。
用spring开发时我们常用的ORM框架有JDBC、Mybatis,Hibernate,现在最常用的应该是Mybatis。
在Springboot中对于数据访问层,无论是SQL还是NOSQL,都默认采用整合Spring Data的方式进行统一处理,Springboot会帮我们添加大量自动配置,屏蔽了很多设置。并引入各种xxxTemplate,xxxRepository来简化我们对数据访问层的操作。对我们来说只需要进行简单的设置即可。这篇就来学习springboot整合JDBC,mybatis、JPA。
我们需要用什么数据访问,就引入相关的start进行开发。
二、JDBC
jdbc是我们最先学习的一个数据库框架,SpringBoot也进行了相应整合.
2.1、 引入依赖
<!--JDBC -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--mysql 驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
2.2、数据源配置
我們可以做个测试:
@Autowired
private DataSource dataSource;
@Test
public void test() throws SQLException {
System.out.println(dataSource.getClass());
Connection connection = dataSource.getConnection();
System.out.println(connection);
connection.close();
}
输出为:com.zaxxer.hikari.HikariDataSource
说明默认数据源是com.zaxxer.hikari.HikariDataSource,而在springboot 2.0之前为org.apache.tomcat.jdbc.pool.DataSource。我们也可以通过改变spring.datasource.type 属性来更改我们想自定义的数据源。数据源的相关配置都在DataSourceProperties,我们可以参考这个类进行配置。
2.3、DataSourceInitializer
DataSourceInitializer这里面有两个方法runSchemaScripts()可以运行建表语句,runDataScripts()可以运行插入数据的sql语句。
默认使用schema-.sql创建建表语句,用data-.sql插入数据语句,当然我们也可以自己配置:
spring:
datasource:
schema:
- classpath:department.sql
2.4、操作数据库
由于spingboot已经帮我们自动配置了,那我们可以直接使用JdbcTemplate进行数据库操作: