jdbc、datasource数据源、数据库驱动,连接池,mybatis的区别

jdbc

jdbc,是Java提供的一个操作数据库的API,提供了很多的接口,就是一种规范。 定义如下:

数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。

用大白话说就是,【连接】和【操作】数据库的最基本组件。记住,2个点,一个是连接数据库,一个是可以操作数据库,进行增删改查。

java 复制代码
 public static void main(String[] args) throws Exception {
        //1.加载驱动程序
        Class.forName("com.mysql.jdbc.Driver");
        //2. 获得数据库连接
        Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
        //3.操作数据库,实现增删改查
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT user_name, age FROM imooc_goddess");
        //如果有数据,rs.next()返回true
        while(rs.next()){
            System.out.println(rs.getString("user_name")+" 年龄:"+rs.getInt("age"));
        }
    } 

数据源

配置数据源,就是建立与数据库的【连接】。

常见的数据源有,hikariCP、druid、tomcat-jdbc、dbcp、c3p0等

为什么要使用数据源建立连接的原因之一是:由于使用jdbc建立连接和销毁太过于浪费资源,因此需要一套高效的与数据库建立连接的组件,那就是数据源,数据源可以创建连接池。

数据源建立多个数据库连接,这些数据库连接会保存在数据库连接池中,当需要访问数据库时,只需要从数据库连接池中,获取空闲的数据库连接,当程序访问数据库结束时,数据库连接会放回数据库连接池中。

连接池,是数据源里面的一种技术,用于存放空闲的连接,以备不时之需。

数据库驱动,上面数据源只是说明它是连接数据库的,而数据库有很多,驱动就是与哪种数据库进行连接时所需要的驱动。即,不同的数据库,数据源要使用相对应的数据库驱动。

oracle

jdbc.driver=oracle.jdbc.driver.OracleDriver jdbc.url=jdbc:oracle:thin:@192.168.0.1:1521:orcl

mybatis (6版本之后是com.mysql.cj.jdbc.Driver)

#jdbc.driver=com.mysql.jdbc.Driver #jdbc.url=jdbc:mysql://192.168.0.13306/platformstandrad_v2?useUnicode=true&characterEncoding=UTF-8

postgresql数据库

#jdbc.driver=org.postgresql.Driver #jdbc.url=jdbc:postgresql://localhost:3306/db_person

MyBatis

JDBC也提供了一套操作数据库进行增删改查的接口,但是过于繁琐。 MyBatis是对JDBC的封装,即使CRUD操作变得更加简单了。

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层(半)ORM框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。 MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

优秀持久层(半)ORM框架,之所以说是半,是因为我们还是可以直接在mapper写sql。

区别

  • jdbc,连接和操作数据库的原生API,接近底层代码。

  • jdbc和数据源,数据源是jdbc连接数据库的实现。

  • 数据源和数据库驱动,连接不同的数据库,就要使用不同的驱动。

  • 数据源和连接池,数据源会利用底层jdbc生成一些闲置的连接放入连接池,以供访问数据库时使用。

  • MyBatis和数据源,操作数据库也是需要先连接到数据库的,所以要给MyBatis设置数据源,以便MyBatis能使用数据源的连接池。

参考文章:blog.csdn.net/u013541707/...

相关推荐
重生之我要进大厂10 分钟前
LeetCode 876
java·开发语言·数据结构·算法·leetcode
_祝你今天愉快13 分钟前
技术成神之路:设计模式(十四)享元模式
java·设计模式
小筱在线1 小时前
SpringCloud微服务实现服务熔断的实践指南
java·spring cloud·微服务
luoluoal1 小时前
java项目之基于Spring Boot智能无人仓库管理源码(springboot+vue)
java·vue.js·spring boot
ChinaRainbowSea1 小时前
十三,Spring Boot 中注入 Servlet,Filter,Listener
java·spring boot·spring·servlet·web
小游鱼KF1 小时前
Spring学习前置知识
java·学习·spring
扎克begod1 小时前
JAVA并发编程系列(9)CyclicBarrier循环屏障原理分析
java·开发语言·python
青灯文案11 小时前
SpringBoot 项目统一 API 响应结果封装示例
java·spring boot·后端
我就是程序猿1 小时前
tomcat的配置
java·tomcat
阳光阿盖尔1 小时前
EasyExcel的基本使用——Java导入Excel数据
java·开发语言·excel