首页 > 其他分享 >数据源、JDBC、MyBatis、连接池(Druid)

数据源、JDBC、MyBatis、连接池(Druid)

时间:2023-01-11 17:23:24浏览次数:36  
标签:JDBC 数据源 DataSource MyBatis 连接 连接池

概念

  • 数据源(DataSource)
    是一种数据库对编程提供的一个接口,每个数据源对应一个数据库。一个例子就是在使用IDEA的数据库插件时,通常需要选择数据源,此处的数据源就是指这个。

  • JDBC
    Java Database connector,是java提供的一套用于执行sql语句的API。他通过数据库驱动和数据库建立连接,且每次建立连接都需要传入用户配置(用户名、密码等),并在执行结束后手动关闭连接。

  • DataSource in Java
    除了“数据源”外,jave还提供了一个名为DataSource(javax.sql包下)的类,该类对JDBC做了一定的封装,有两个getConnection方法用于获取连接。类似于JDBC这个类通过数据库驱动和数据库建立连接,用户在使用DataSource时也需要传入用户名、密码等参数来支持连接,但不同的时,仅需要配置一次信息,之后可以使用DataSource实例来直接获取连接。

  • 连接池
    以上过程中,每次执行sql语句都需要执行一遍连接的创建与销毁,而连接池的引入则优化了这个问题,当项目启动时,连接池内就创建了若干准备好的连接,需要执行sql操作时就直接到连接池中取,执行完毕后再放到池中,除非连接池中没有可用链接,才会创建新的连接,这样就省去了不断的创建与销毁

  • DruidDataSource
    除了java原生的DataSource,也有很多其他机构开发的DataSource,如阿里的DruidDataSource,一般称为“德鲁伊”。DruidDataSource是DataSource的子类,也提供getConnection等操作,同时,德鲁伊也提供一个连接池,所以使用德鲁伊进行sql语句执行时,可以手动getConnection也可以使用连接池中的连接来完成任务。

  • MyBatis
    MyBatis是对JDBC的封装,在原生JDBC中,每次执行语句需要:① 加载数据库驱动;② 创建连接;③ 写原生sql语句;④ 执行;⑤ 关闭所用资源。而MyBatis则是根据配置自动完成上述任务,且MyBatis支持使用连接池来加快程序运行效率,所以现在开发时,多使用MyBatis+DruidDataSource的组合,当然他们底层都会依赖JDBC。

关系图

YIYUYI:DB流程图

Demo:待续

标签:JDBC,数据源,DataSource,MyBatis,连接,连接池
From: https://www.cnblogs.com/YuanShiRenY/p/DB_DataSource.html

相关文章

  • 学习笔记——MyBatis自动映射与自定义映射;Mybatis延迟加载
    2023-01-10 一、MyBatis自动映射与自定义映射1、自动映射:在映射文件中使用的是“resultType”。指的是自动将数据库中表的字段与类中的属性进行关联映射。2、自定义映......
  • JDBC3 - 优化SQL语句
    SQL语句优化statement-->preparedStatementSQL语句的拼接受限,对于①多条语句和②复杂类型无法实现操作,且易受③注入攻击statement只适合静态SQL语句,动态SQL语句的......
  • DataEase 数据源插件开发——如何替换 STGroupFile 模板文件
    在DataEase的数据源中,使用了STGroupFile模板文件,默认加载的模板文件为dataease-extension-sdk项目中的pluginSqltemplate.stg文件,如下图所示此文件中声明了SQL的......
  • JDBC2 - 六步骤模拟登录(详细)
    JDBC六步骤详细信息-模拟登录packagecom.atguigu.api.statement;importcom.mysql.cj.jdbc.Driver;importjava.sql.*;importjava.util.Properties;importjava......
  • SpringBoot+Mybatis-plus整合easyExcel批量导入Excel到数据库+导出Excel
    一、前言今天小编带大家一起整合一下easyExcel,之所以用这个,是因为easyExcel性能比较好,不会报OOM!市面上常见的导入导出Excel分为三种:hutooleasyExcelpoihutool和eas......
  • JDBC1 - 基础
    JDBC-技术路线接口在开发中的作用、驱动配置、JDBC编程六步、Statement完成增、删、改、连接数据库的信息在属性资源文件中配置、安装PowerDesigner、设计用户表、State......
  • Mybatis——实现批量更新
    一、概述mybatis中实现批量插入是很简单的,相比大家都知道,这里就不赘述,本文主要讲述如何实现批量更新。 下面介绍本文要讲的几种方式主要是在xml中实现,不包含需要改动代......
  • Docker 打包MySQL (带数据源打包) 并加载打包后镜像运行
    前言mysql镜像的数据默认都在/var/lib/mysql目录下,我们修改默认的数据库的数据位置就行,不要放在/var/lib/mysql下面。操作1.创建mysql源数据备份目录mkdir/mysqldata......
  • Mybatis
    缓存与Executor一级缓存一级缓存是sqlSession级别的,默认开启,在BaseExecutor中实现,其具体实现为key-value结构的HashMap。一级缓存命中条件1、查询sql和参数值必须相同;......
  • (老jdbc的rowapper框架)老代码没setId 没设置主键id咋能保存成功的
    疑问1:老代码没setId 没设置主键id咋能保存成功的       并且老代码数据库的主键也不是自增,为什么没有设置主键id咋不报错  原因:看原来代码mapper......