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比较多
springboot-访问数据库的更多相关文章
- springboot访问数据库(MySql)
1.使用JDBC访问数据库:JDBC是用于在Java语言编程中与数据库连接的API <dependency> <groupId>org.springframework.boot ...
- springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验--异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档---jpa访问数据库及page进行分页---整合redis---定时任务
springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验-- 异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档 ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-1.整合Mybatis访问数据库和阿里巴巴数据源
笔记 1.整合Mybatis访问数据库和阿里巴巴数据源 简介:整合mysql 加入mybatis依赖,和加入alibaba druid数据源 1.加入依赖(可以用 http://start.s ...
- IntelliJ IDEA ,springboot 2.0 +mybatis 创建和访问数据库
环境: JDK8+windows10 步骤 New Module —>Spring Initializr—>next 1 2. 3.web勾选web,sql里面可以不勾,后续添加, ...
- Spring Boot入门教程2-1、使用Spring Boot+MyBatis访问数据库(CURD)注解版
一.前言 什么是MyBatis?MyBatis是目前Java平台最为流行的ORM框架https://baike.baidu.com/item/MyBatis/2824918 本篇开发环境1.操作系统: ...
- 【SpringBoot】数据库操作之整合Mybaties和事务讲解
========================8.数据库操作之整合Mybaties和事务讲解 ================================ 1.SpringBoot2.x持久化数 ...
- 使用JdbcTemplate访问数据库
参考源端:https://blog.csdn.net/liaodehong/article/details/76974827 今天用Spring Boot访问一下数据库,并且把数据返回到页面中,进行增 ...
- SpringBoot基于数据库实现简单的分布式锁
本文介绍SpringBoot基于数据库实现简单的分布式锁. 1.简介 分布式锁的方式有很多种,通常方案有: 基于mysql数据库 基于redis 基于ZooKeeper 网上的实现方式有很多,本文主要 ...
- C#使用ADO.NET访问数据库(一)
博主好久没更新博客了,最近有点忙(打麻将0.0..),今天更新一篇C#的,我还是想坚持更新博客,分享一下自己的心得,闲话少说,开始正题~~ ADO.NET概述:ADO.NET的作用在于他是客户端访问服 ...
- Android 异步任务,通过PHP访问数据库,多线程,线程间通讯
文章列表MainActivity.java package com.eric.asynctask; import java.io.IOException; import java.util.Array ...
随机推荐
- [题解]hihoCoder挑战赛18——题目1 神奇字符串
题目地址:http://hihocoder.com/problemset/problem/1264 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 我们说两个字符串是非常 ...
- RFC2544优化步长测试——信而泰网络测试仪实操
一.测试拓扑 拓扑说明 1.测试仪两个端口和DUT两个端口相连 2.测试仪P1端口发出流量,经过DUT转发后,从B端口发出,进入测试仪P2端口. 二.测试思路 1.在测试仪端口上创建两个Interfa ...
- windev中的内存机制及其与C语言中的内存指针相似性(一)
windev中的内存机制,是初入windev世界必须要越过的一道高山,以下我的理解和经验未必都对,如有错误或遗漏,以后再纠正或补充!另外,以下内容,咱先谈应用,再说对机制的认识和理解. 一.新建表单, ...
- Linux:mount命令出现Host is down如何解决
当使用Linux中的mount命令挂载一个Windows的共享目录的时候有时会出现:mount error(112): Host is downRefer to the mount.cifs(8) m ...
- 有关SQL(2012)突然无法连接服务器的问题解答
Sql Server无法启动的4中原因:(先得分析出问题所在) 原文地址:http://www.cnblogs.com/JiangLe/p/4000497.html SQL Server 无法启动的原 ...
- Neo4j入门日志(一)导入数据
本文主要来源于: neo4j的官方文档 使用的是neo4j官方提供的导入方式,即使用import,在cmd中进行导入. 1.导入的基本方式 bin/neo4j-admin import --datab ...
- c语言结构体中的一个char数组怎么赋值?
目录 前景提示 这里的结构体处理的步骤 一.char数组类型的处理 二.char数组指针类型的处理 三.全部代码 1. char数组 2. char数组指针 结语 前景提示 定义一个结构体,结构体中有 ...
- idea教程--快速插入依赖
1.打开pom.xml文件,按下快捷键Alt+insert,弹出Generate框,选择Dependency. 2.搜索所需jar的关键字. 3.点击add.添加jar包成功.如果第二步没有所要jar ...
- GAN实战笔记——第六章渐进式增长生成对抗网络(PGGAN)
渐进式增长生成对抗网络(PGGAN) 使用 TensorFlow和 TensorFlow Hub( TFHUB)构建渐进式增长生成对抗网络( Progressive GAN, PGGAN或 PROGA ...
- 资源管理模式:Evictor模式
Evictor模式描述了何时以及如何释放资源以优化资源管理.这个模式让我们可以配置不同的策略来自动决定哪些资源应该释放,以及应该在什么时候释放. 实例 考虑一个网络管理系统--管理多个网络元素.这些网 ...