• 数据库-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连接数据库的步骤

    1. 注册驱动,这里的执行 就需要驱动jar包即 mysql-connector-java
    1. // mysql 数据库:“com.mysql.jdbc.Driver”
    2. Class.forName(driver);
    1. 建立数据库连接 Connection
    1. Connection conn=DriverManager.getConnection(url,userName,password);
    1. 创建Statement对象 用来执行SQL语句
    1. Statement statement =conn.createStatement();
    1. 执行SQL语句
    ResultSet rs =statement.executeQuery(sql);
    
    1. 处理结果
    2. 释放资源

    数据库连接池

    在使用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 - 博客园

     

  • 相关阅读:
    DTOS帝拓思的3D引擎将取代游戏引擎巨兽,实现国产化替代
    Jetpack架构组件_1.基本知识
    招投标系统软件源码,招投标全流程在线化管理
    【word技巧】Word制作试卷,ABCD选项如何对齐?
    想学 fpga 开发该怎么入门?
    echarts图表 实现高度按照 内容撑起来或者超出部分滚动展示效果
    Blender中的高级边缘控制和纹理映射
    Trainer--学习笔记
    力扣560. 和为 K 的子数组
    软件测试面试问题及答案
  • 原文地址:https://blog.csdn.net/startyangu/article/details/127932612