关于几种常用的数据库连接工具以及数据库连接池的介绍

894 阅读4分钟

小知识,大挑战!本文正在参与“  程序员必备小知识  ”创作活动

本文同时参与 「掘力星计划」  ,赢取创作大礼包,挑战创作激励金

👨‍🎓作者:Java学术趴

🏦仓库:GithubGitee

✏️博客:CSDN掘金InfoQ云+社区

💌公众号:Java学术趴

🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。

🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。微信搜索公众号Java学术趴联系小编。

☠️每日毒鸡汤:坚持自己的梦想,即使没有翅膀也能飞翔。

👋大家好!我是你们的老朋友Java学术趴。今天给大家分享一些关于数据库连接的技术,都是现在开发中经常看到的一些技术。比如:jdbc、c3p0等技术。

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接口呢

1.5 JDBC的本质是什么?

一套接口

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地址

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

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

数据库连接池(C3P0、Druid)

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

优点:

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

实现:

标准接口 : DataSorce javax.sql包下

  1. 方法:

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

    • 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()

image-20211018142246993

-------💘看完的大佬们可以关注一下小编,会一直更新小技巧,免费分享给大家呦!!!💝-----