数据库-jdbc、spring-jdbc、spring-boot-starter-jdbc
1、jdbc
JDBC是一种用于执行SQL语句的API,可以为多种关系数据库提供统一访问,它是由一组用Java语言编写的类和接口。是Java访问数据库的标准规范。
JDBC是Java提供的一种标准规范,具体的实现由各个数据库厂商去实现。对开发者来说屏蔽了不同数据库之间的区别,可以使用相同的方式(Java API)去操作不同的数据库。两个设备之间要进行通信需要驱动,不同数据库厂商对JDBC的实现类就是去连接数据库的驱动。如mysql-connector-java
连接mysql
数据库的驱动。
扩展
如何使用jdbc链接并操作数据库呢
使用JDBC连接数据库的步骤
- 注册驱动,这里的执行 就需要驱动jar包即 mysql-connector-java
// mysql 数据库:“com.mysql.jdbc.Driver”
Class.forName(driver);
- 建立数据库连接 Connection
Connection conn=DriverManager.getConnection(url,userName,password);
- 创建Statement对象 用来执行SQL语句
Statement statement =conn.createStatement();
- 执行SQL语句
ResultSet rs =statement.executeQuery(sql);
- 处理结果
- 释放资源
数据库连接池
在使用JDBC进行数据库操作过程中,每次使用就要创建连接,同时使用完毕还必须得关闭连接,操作繁琐容易出错,并且Connection的取得和释放是代价比较高的操作。解决这个问题的方法就是连接池。连接池就是事先取得一定数量的Connection,程序执行处理的时候不是新建Connection,而是取得预先准备好的Connection。
DataSource
提供连接池能力的技术叫做DataSource。DataSource是JDK提供一个标准接口在javax.sql.DataSource
包下。常见的DBCP、C3P0、druid等。
二、spring-jdbc
Spring JDBC是Spring所提供的持久层技术,他主要目的降低JDBC API的使用难度,以一种更直接、更简洁的方式使用JDBC API。
三、spring-boot-starter-jdbc
1、spring-boot-starter-jdbc主要提供了三个功能:
第一个就是对数据源的自动装配
第二个就是提供一个JdbcTemplate简化数据库操作
第三个就是事务控制支持
2、spring-boot-starter-jdbc,会引入以下两个依赖
1、HikariCP 数据库连接池库
2、spring-jdbc
3、自动配置
dataSource:DataSource(com.zaxxer.hikari.HikariDataSource,读取 spring.datasource 配置)
transactionManager:PlatformTransactionManager(DateSourceTransactionManager,使用 dataSource 初始化)
jdbcTemplate:JdbcTemplate(使用 dataSource 初始化)
自动逻辑
放置在类路径下的 schema.sql 会自动用来初始化表结构
放置在类路径下的 data.sql 会自动用来填充表数据
4、默认支持的数据源
默认支持 Hikari,tomcat-jdbc,dbcp,dbcp2,Generic这五种数据源。
如果引入了 Hikari 就会创建 Hikari 的 DataSource,否则创建 tomcat-jdbc 的DataSource,以此类推。
强制默认创建指定的 DataSource:spring.datasource.type=com.zaxxer.hikari.HikariDataSource
5、spring-boot-starter-jdbc和mybatis-spring-boot-starter区别
spring-boot-starter-jdbc是springboot提供的,但是如果引入了mybatis-spring-boot-starter,就不再需要单独引入spring-boot-starter-jdbc了,这是由于mybatis已经包含了此依赖
参考资料:从jdbc到spring-boot-starter-jdbc - 在线打工者 - 博客园
mysql-connector-java详解_毛惜时的博客-CSDN博客
spring-boot-starter-jdbc、mysql-connector-java、mybatis-spring-boot-starter区别及说明 - liyanbo - 博客园
数据库-jdbc、spring-jdbc、spring-boot-starter-jdbc相关推荐
- spring boot 使用 com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别
2019独角兽企业重金招聘Python工程师标准>>> 今天集成spring boot 2.1.1构建web应用并且集成jdbc,发现默认用的8.0.13, <dependen ...
- spring boot整合JDBC
文章目录 狂神说 1. 导入模块 项目创建会自动帮我们导入了如下的启动器: 2. 配置文件添加数据库的配置信息 3. SpringBoot默认进行自动配置,可以直接使用 -- 数据源 4. JDBCT ...
- Spring Boot之jdbc数据操作06
Spring Boot之jdbc数据操作06 JDBC 通过快速创建spring boot项目选择 mysql 和jdbc 创建一个基于web的spring boot项目 依赖为 <depend ...
- 【spring】spring JDBC开发 、 将创建表生成sql语句的方法
将navicate中已存在表的创建转化成sql语句的方法 1.右击表,选择对象信息 2.点击DDL jar包引入 1.spring-starter-jdbc 代码实现: <dependency& ...
- Spring的jdbcTemplate 与原始jdbc 整合c3p0的DBUtils 及Hibernate 对比 Spring配置文件生成约束的菜单方法...
以User为操作对象 package com.swift.jdbc;public class User {private Long user_id; private String user_code; ...
- spring 中 Hibernate 事务和JDBC事务嵌套问题
http://www.iteye.com/topic/11063?page=2 ---mixed ORM and JDBC usage is a feature of Spring DAO 这是Rod ...
- Spring 的持久化实例(JDBC, JdbcTemplate、HibernateDaoSupport、JdbcDaoSupport、SqlSessionDaoSupport等)...
2019独角兽企业重金招聘Python工程师标准>>> 一.表(这里用mysql,数据库名为yiibai) CREATE TABLE `customer` (`CUST_ID` in ...
- Spring jdbc Template和Spring 事务管理
使用jdbcTemplate完成增删改查操作(重点) package com.it.jdbctemplate;import java.util.List;import org.junit.Test; ...
- Spring源代码分析(11)---JDBC Dao(老树发新芽)
在数据库访问技术中,我们有很多选择,诸如jpa,hibernate但是无论选择那种,其实,我们都无法拒绝使用JDBC,Spring为集成JDBC做个很多工作,让我们来看下,这最底层数据库访问技术在春天 ...
- 原生jdbc示例 与spring JDBC 示例
个人博客:https://suveng.github.io/blog/ 原生jdbc与spring整合 JDBC介绍 JDBC API 允许用户访问任何形式的表格数据,尤其是存储在关系数 ...
最新文章
- Java 基础 之 三目运算
- 第九章-构建图形用户界面
- 第10章 嵌入式linux的调试技术
- mysql的字符型系统数据类型主要包括_MySQL的数据类型主要包括哪些
- 使用c++为node.js扩展模块
- ES6学习(十)—async 函数
- 中兴服务器管理口配置,中兴交换机简明配置教程
- ace admin日期控件 中文显示
- nero incd V4.3.23.3 序列号
- li指令 汇编_汇编指令简介
- IIS EXPRESS无法启动
- 【华为OD机试真题 JS】字符串分割
- linux添加变色龙引导,变色龙引导界面屏蔽多余盘符并默认启动Mac _ 黑苹果乐园...
- MySQL 规范数据库设计
- 免费域名和付费域名的几个区别
- 怎么搭建直播平台,直播环境搭建该怎样做?
- mars3d-canvans风向图支持自定义绘制局部区域
- 关闭Pinterest通知
- 理工英语单词汇总与复习
- win10系统日志显示不可用sid_小编处理win10系统启用或禁用日志的处理办法