springboot-访问数据库
在springboot中,默认的JPA实现是Hibernate,JPA是Java Persistence API的简称,中文名Java持久层API
<!--数据库-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

我们其实是可以不用使用任何配置数据库的情况下运行spring-boot工程的
因为h2是内嵌的数据库,而且数据源可以配置为hqldb 或者Derby,
如果想要配置其他数据源就要用到配置自定义数据源的方法了
####################################################
配置自定义数据源:
使用Mysql数据源
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
配置依赖之后,需要配置数据库相关的信息才能连接到数据库
注意:默认情况下,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数据源
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-dbcp2</artifactId> <version>2.7.0</version> </dependency>
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数据源时

因为实现了接口ApplicationContextAware的方法setApplicationContext()
生命周期可以知道,初始化的时候就会被调用了,所以获取IOC容器上下文
通过getBean方法得到数据库连接词,最后打出全限定类名
前期准备
使用JdbcTemplate操作数据库
在配置数据源后, Spring Boot 通过其自动配置机制配置好了JdbcTemplate, JdbcTemplate 模板是spring框架提供的
工作中还是用myBatis比较多

浙公网安备 33010602011771号