常见的数据库连接池

简介: JDBC(Java Database Connectivity)是一个独立于特定数据库 管理系统、通用的SQL数据库存取和操作的公共接口(一组API) , 定义了用来访问数据库的标准Java类库,( java.sql.javax.sql )使用这些类库可以以一种标准的方法、方便地访问数据库资源。

1.1 JDBC是什么

Java DataBase Connectivity (Java语言来连接数据库)

1.2 JDBC的本质什么

JDBC时SUN公司制定的一套接口(interface) java.sql*;(这个包下有很多的接口)

接口都有调用者和实现者。

面向接口调用、面向接口写实现类,这都属于面向接口的编程。

1.3 为什么要面型接口编程?

解耦合 :降低程序的耦合度,提高程序的扩展力。

多态机制就是非常典型的 :面向抽象编程。(不要面向具体编程)

建议 :

Animal a = new Cat();
Animal b = new Dog();
复制代码

喂养方法 :

public void feed(Animal d){
    // 面向父类编程
        }
复制代码

// 不建议

Dog a = new Dog();
Cat c = new Cat();
复制代码

1.4 为什么SUN公司制定了一套JDBC接口呢

微信截图_20220610114425.png微信截图_20220610114438.png

1.5 JDBC的本质是什么?

一套接口

微信截图_20220610114447.png

JDBC编程六步 (需要背)


  • 第一步 :注册驱动(作用:告诉Java程序,即将要连接哪个数据库)
  • 第二步 :获取连接(表示JVM的进程和数据库进程之间的通道打开了,这属于进程之间的通信,重量级的。使用完之后一定要关闭)
  • 第三步 :获取数据库操作对象(专门执行sql语句的对象)
  • 第四步 :执行SQL语句(DQL、DML...)
  • 第五步 :处理查询结果集(只要当第四步执行的是select语句的时候,才有这五步处理查询结果集)
  • 第六步 :释放资源 (使用完资源之后一定要进行关闭资源。Java和数据库属于进程间的通信,开启之后一定要进行关闭)

url: 统一资源定位符(网络中某个资源的绝对路径)

www.baidu.com/这就是一个url

URL包括哪几个部分 :

  • 协议
  • IP
  • PORT
  • 资源名

http://182.61.200.7:80/index.html

http:// 通信协议 182.61.200.7  服务器IP地址 80  服务器上软件的端口 index.html 服务器上某个资源名

连接mysql数据库的url jdbc:mysql://192.168.1.106:3306/bjpowernode

连接oracle数据库的url jdbc:oracle:thin:@localhost:1521:orcl //orcl为数据库的SID jdbc:mysql://  协议 192.168.1.106 本机的IP地址 (127.0.0.1或者localhost) 3306  数据库的端口号 bjpowernode  具体的数据库实例名

说明 : localhost和127.0.0.1都是本机的IP地址

微信截图_20220610114531.png

重点 :使用DQL语句处理查询集的原理

微信截图_20220610114539.png

注意 :光标刚开始时指向0的位置,没有数据,而next判断的则是数据库的下一行还有没有数据。


数据库连接池(C3P0、Druid)


概念: 其实就是一个容器(集合),存放数据库连接的容器。当系统初始化后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。

优点:

  • 节约资源
  • 用户访问高效

实现:

标准接口 : DataSorce javax.sql包下

  1. 方法:
  • 获取连接:getConnection()
  • 归还方法: Connection.close()。 如果连接对象Connection是从连接池中获取的,那么调用Connection.close()方法,则不会关闭连接。而是归还连接。
  1. 一般我们不去实现这个数据库连接池,由数据库厂商进行实现。
  • C3P0:数据库连接池技术
  • Druid:数据库连接技术,由阿里巴巴提供


C3P0连接池


实现步骤:

  • 导入jar包(两个) :c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar。不要导入忘记导入数据库驱动jar包。
  • 定义配置文件:
  • 名称:c3p0.properties 或者 c3p0-config.xml。
  • 路径:直接将文件存储到src目录下。
  • 创建核心对象:数据库连接池对象(CombopooledDataSourc e)
  • 获取连接:getConnection()



微信截图_20220610114623.png

相关文章
|
7月前
|
SQL 网络协议 数据库连接
什么是数据库连接池?为什么需要数据库连接池呢?
什么是数据库连接池?为什么需要数据库连接池呢?
|
网络协议 关系型数据库 MySQL
实现数据库连接池
实现数据库连接池
140 0
|
19天前
|
数据库连接 数据库
数据库连接池
数据库连接池的根本原理其实并不复杂,其原理就是服务器提前准备好一组可以使用的数据库连接,当客户端的请求到达时,如果数据库连接池里有空闲连接的话,就取出一个空闲连接进行数据库操作,如果已没有空闲连接就进入等待。通过这样的数据库连接复用,可以在很大程度上提高服务器的性能,并减轻数据库的负担。
|
2月前
|
SQL 监控 Java
C3P0数据库连接池
C3P0数据库连接池
116 0
|
7月前
|
SQL druid Java
Driud数据库连接池的使用
Driud数据库连接池的使用
85 0
|
6月前
|
SQL 缓存 关系型数据库
数据库连接池到底应该设多大?
数据库连接池到底应该设多大?
310 0
|
7月前
|
Java 关系型数据库 MySQL
数据库连接池的实现
数据库连接池的实现
|
Java 关系型数据库 应用服务中间件
数据库连接池对比
数据库连接池对比
101 0
|
Java 数据库连接 数据库
一篇文章学会学会c3p0数据库连接池~
一篇文章学会学会c3p0数据库连接池~
277 0
|
SQL 缓存 监控
数据库连接池 BoneCP、HikariCP 等
数据库连接池 BoneCP、HikariCP 等
255 0