超详细讲解SpringBoot——数据访问

前言:

大部分系统都离不开数据访问,数据库包括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也进行了相应整合。

(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)数据源配置

我們可以做个测试:

@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,我们可以参考这个类进行配置。

(3)DataSourceInitializer

DataSourceInitializer这里面有两个方法runSchemaScripts()可以运行建表语句,runDataScripts()可以运行插入数据的sql语句。

默认使用schema-.sql创建建表语句,用data-.sql插入数据语句,当然我们也可以自己配置:

spring:
  datasource:
    schema:
     - classpath:department.sql

(4)操作数据库

由于spingboot已经帮我们自动配置了,那我们可以直接使用JdbcTemplate进行数据库操作:

@Autowired
JdbcTemplate jdbcTemplate;
@Test
public void jdbcTest(){
   
    List<Map<String, Object>> mapList = jdbcTemplate.queryForList("select * from user ");
    System.out.println(mapList.get(0));
}

结果:{id=1, username=王五, birthday=null, sex=2, address=null}

二、整合Druid数据源

上面讲到我们有默认的数据源,但一般情况我们还是会使用阿里提供的Druid数据源,因为Druid提供的功能更多,并且能够监控统计,这个时候我们需要先引入pom依赖,然后将spring.datasource.type 修改:

你可能感兴趣的:(Java后端,框架知识,Spring,Boot,java,spring,boot,后端)