springboot-访问数据库

 

在springboot中,默认的JPA实现是Hibernate,JPA是Java Persistence API的简称,中文名Java持久层API


        
            org.springframework.boot
            spring-boot-starter-data-jpa
        

 

springboot-访问数据库_第1张图片

 

 我们其实是可以不用使用任何配置数据库的情况下运行spring-boot工程的

因为h2是内嵌的数据库,而且数据源可以配置为hqldb 或者Derby,

如果想要配置其他数据源就要用到配置自定义数据源的方法了

 ####################################################

配置自定义数据源:

使用Mysql数据源

      
            mysql
            mysql-connector-java
        
        
            org.springframework.boot
            spring-boot-starter-jdbc
        

配置依赖之后,需要配置数据库相关的信息才能连接到数据库

 注意:默认情况下,springboot会使用绑定的Tomcat的数据源,

spring.datasource.url=jdbc:mysql://localhost:3306/ApolloConfigDB
spring.datasource.username=root
spring.datasource.password=1997
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#最大等待连接中的数量,设置为0为没有限制
spring.datasource.tomcat.max-idle=10
#最大活动连接数
spring.datasource.tomcat.max-active=50
#最大等待毫秒数,单位ms,超过时间会出错误
spring.datasource.tomcat.max-wait=10000
#数据库连接池初始化连接数
spring.datasource.tomcat.initial-size=6

这样就完成了springboot的数据源配置,

#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

注释掉驱动类的配置,springboot会尽可能的去判断数据什么类型,然后根据默认的情况

去匹配驱动类,

上面还使用了自带的数据库连接池

####################################################

使用第三方的数据源,就是连接数据库的工具,可以产生数据源

 

例子:配置DBCP2数据源

        
        
            org.apache.commons
            commons-dbcp2
            2.7.0
        

 

spring.datasource.url=jdbc:mysql://localhost:3306/ApolloConfigDB
spring.datasource.username=root
spring.datasource.password=1997
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
##最大等待连接中的数量,设置为0为没有限制
#spring.datasource.tomcat.max-idle=10
##最大活动连接数
#spring.datasource.tomcat.max-active=50
##最大等待毫秒数,单位ms,超过时间会出错误
#spring.datasource.tomcat.max-wait=10000
##数据库连接池初始化连接数
#spring.datasource.tomcat.initial-size=6

##使用第三方数据源 dbcp数据源,spring.datasource.type指定数据源
spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource
spring.datasource.dbcp2.max-idle=10
spring.datasource.dbcp2.max-total=40
spring.datasource.dbcp2.max-wait-millis=10000
spring.datasource.dbcp2.initial-size=6

 

通过spring.datasource.type 属性指定数据库连接池的类型

spring.datasource.dbcp2.* 去配置连接池信息,

 

##############################

利用bean的生命周期查看使用的数据源

@Component
public class DatasourceShow implements ApplicationContextAware {
    ApplicationContext applicationContext = null;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext = applicationContext;
        DataSource dataSource = applicationContext.getBean(DataSource.class);
        System.out.println("#####################################");
        System.out.println(dataSource);
        System.out.println("#####################################");

    }
}

配置为dcbp数据源时

springboot-访问数据库_第2张图片

 

因为实现了接口ApplicationContextAware的方法setApplicationContext()
生命周期可以知道,初始化的时候就会被调用了,所以获取IOC容器上下文
通过getBean方法得到数据库连接词,最后打出全限定类名

 

前期准备

 

 

 

使用JdbcTemplate操作数据库

在配置数据源后, Spring Boot 通过其自动配置机制配置好了JdbcTemplate, JdbcTemplate 模板是spring框架提供的

工作中还是用myBatis比较多

 

你可能感兴趣的:(springboot-访问数据库)