spring-boot-starter-jdbc、mysql-connector-java、mybatis-spring-boot-starter

1、spring-boot-starter-jdbc简介

  spring-boot-starter-jdbc主要提供了三个功能:
        1)第一个就是对数据源的自动装配
        2)第二个就是提供一个JdbcTemplate简化数据库操作
        3)第三个就是事务控制支持 

  依赖spring-boot-starter-jdbc 会引入 HikariCP 数据库连接池库。 

  自动配置:
        1)dataSource:DataSource(com.zaxxer.hikari.HikariDataSource,读取 spring.datasource 配置)
        2)transactionManager:PlatformTransactionManager(DateSourceTransactionManager,使用 dataSource 初始化)
        3)jdbcTemplate:JdbcTemplate(使用 dataSource 初始化)

  自动逻辑:
        1)放置在类路径下的 schema.sql 会自动用来初始化表结构
        2)放置在类路径下的 data.sql 会自动用来填充表数据

  笔记:

  1)默认支持 Hikari,tomcat-jdbc,dbcp,dbcp2,Generic这五种数据源。
        2)如果引入了 Hikari 就会创建 Hikari 的 DataSource,否则创建 tomcat-jdbc 的DataSource,以此类推。
        3)强制默认创建指定的 DataSource:spring.datasource.type=com.zaxxer.hikari.HikariDataSource 

2、mysql-connector-java是什么

  mysql-connector-java 是MySQL提供的JDBC驱动包,用JDBC连接MySQL数据库时必须使用该jar包,它的主要用途有三个: 

        1、与数据库建立连接
        2、发送 SQL 语句
        3、处理结果

 不同版本Driver类的包路径对比:

        mysql-connector-java包中的Driver类是mysql提供实现类,实现了java.sql.Driver的规范。
        在5.x版本中Driver类在com.mysql.jdbc包路径下,
        到了6.x版中Driver类在com.mysql.cj.jdbc包路径下  

3、spring-boot-starter-jdbc和mybatis-spring-boot-starter区别

  spring-boot-starter-jdbc是springboot提供的,但是如果引入了mybatis-spring-boot-starter,就不再需要单独引入spring-boot-starter-jdbc了,这是由于mybatis已经包含了此依赖

核心区别是:

        mysql-connector-java是JAVA程序中真正操作mysql数据库的客户端,spring-boot-starter-jdbc中的JdbcTemplate是对JDBC的封装,底层还是调用mysql-connector-java中的方法操作mysql数据库。
1、先说一下JDBC吧,JDBC是一种规范,定义了JAVA语言如何去操作数据库,是一种接口规范。
2、再说一下mysql-connector-java,是mysql提供实现了JDBC定义的驱动,在JAVA程序中操作mysql实际上是通过调用mysql-connector-java实现的。 

PS:mysql-connector-java与数据库建立连接的基础,只有与数据建立连接后spring-boot-starter-jdbc、mybatis-spring-boot-starter才可以进行sql的执行,mybatis-spring-boot-starter中包含 spring-boot-starter-jdbc所以在有mybatis-spring-boot-starter就不需要引用spring-boot-starter-jdbc

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值