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

简介: 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接口呢

微信截图_20220609232923.png微信截图_20220609232934.png

1.5 JDBC的本质是什么?


一套接口

微信截图_20220609233013.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地址

微信截图_20220609233100.png

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

网络异常,图片无法展示
|

微信截图_20220609233124.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()

微信截图_20220609233237.png



相关文章
|
17天前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
56 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
1月前
|
SQL 数据可视化 关系型数据库
【数据库工具】DBeaver:一款免费的通用数据库工具和 SQL 客户端
【数据库工具】DBeaver:一款免费的通用数据库工具和 SQL 客户端
101 1
|
29天前
|
Rust 关系型数据库 Linux
Rainfrog: 轻量级数据库管理工具
【10月更文挑战第3天】
|
3月前
|
前端开发 数据库 Python
用Python轻松开发数据库取数下载工具
用Python轻松开发数据库取数下载工具
|
3月前
|
SQL 数据处理 数据库
|
3月前
|
SQL 存储 监控
|
3月前
|
Java 开发者 前端开发
Struts 2、Spring MVC、Play Framework 上演巅峰之战,Web 开发的未来何去何从?
【8月更文挑战第31天】在Web应用开发中,Struts 2框架因强大功能和灵活配置备受青睐,但开发者常遇配置错误、类型转换失败、标签属性设置不当及异常处理等问题。本文通过实例解析常见难题与解决方案,如配置文件中遗漏`result`元素致页面跳转失败、日期格式不匹配需自定义转换器、`<s:checkbox>`标签缺少`label`属性致显示不全及Action中未捕获异常影响用户体验等,助您有效应对挑战。
88 0
|
3月前
|
数据库 测试技术 开发者
Play Framework的测试魔法:让代码在舞台上翩翩起舞,确保应用质量的幕后英雄!
【8月更文挑战第31天】Play Framework不仅以其高效开发与部署流程著称,还内置了强大的测试工具,提供全面的测试支持,确保应用高质量和稳定性。本文将详细介绍如何在Play Framework中进行单元测试和集成测试,涵盖`WithApplication`、`WithServer`及`WithDatabase`等类的使用方法,并通过示例代码手把手教你如何利用Play的测试框架。无论是单元测试、集成测试还是数据库操作测试,Play Framework均能轻松应对,助你提升应用质量和开发效率。
44 0
|
3月前
|
SQL 关系型数据库 数据库连接
Entity Framework Core 入门教程来袭!快速上手强大的 ORM 工具,开启高效数据库开发之旅!
【8月更文挑战第31天】Entity Framework Core(EF Core)是一个轻量且可扩展的对象关系映射(ORM)框架,允许开发者使用 .NET 语言操作数据库而无需直接编写 SQL 语句。本教程涵盖 EF Core 的安装、数据库上下文创建、数据库连接配置及常见数据库操作(如添加、查询、更新和删除),并介绍如何利用数据库迁移功能安全地更改数据库结构。通过本教程,你可以快速掌握 EF Core 的基本用法,提高开发效率。
72 0
|
3月前
|
SQL 监控 关系型数据库
SQL性能监控与调优工具的神奇之处:如何用最佳实践选择最适合你的那一个,让你的数据库飞起来?
【8月更文挑战第31天】在现代软件开发中,数据库性能监控与调优对应用稳定性至关重要。本文对比了数据库内置工具、第三方工具及云服务工具等几种常用SQL性能监控与调优工具,并通过示例代码展示了如何利用MySQL的EXPLAIN功能分析查询性能。选择最适合的工具需综合考虑功能需求、数据库类型及成本预算等因素。遵循了解工具功能、试用工具及定期维护工具等最佳实践,可帮助开发者更高效地管理和优化数据库性能,迎接未来软件开发中的挑战与机遇。
53 0