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/...

相关推荐
攻城狮7号27 分钟前
Java三十而立:Java 的30岁与Spring AI 1.0正式发布
java·人工智能·深度学习·ai·spring ai
Su米苏27 分钟前
Spring Boot 中修改 HTTP 响应状态码(即 `response.status`)可以通过以下几种方式实现
java
Java永无止境37 分钟前
JavaSE常用API之Runtime类:掌控JVM运行时环境
java·开发语言·jvm
caihuayuan538 分钟前
Vue3 Composition API: 企业级应用最佳实践方案
java·大数据·spring boot·后端·课程设计
只在空想家40 分钟前
SpringBoot JAR 启动原理
java·spring boot·后端·jar
步行cgn1 小时前
函数式编程思想详解
java·开发语言·windows
徐子宸1 小时前
Docker面试题(1)
java·docker·容器
大坏波1 小时前
C/C++内存管理
java·c语言·c++
轮到我狗叫了2 小时前
力扣.H指数力扣.字母异位词力扣.289生命游戏力扣452.用最小数量的箭引爆气球力扣.86分隔链表力扣.轮转数组
java·数据结构·算法
zeijiershuai2 小时前
SpringBoot项目配置文件、yml配置文件
java·spring boot·yml