当前位置: 首页 > news >正文

JDBC初相识

文章目录

  • JDBC的由来
    • JDBC的好处
  • JDBC核心API的介绍
    • JDBC会用到的包
    • JDBC四个核心对象
    • JDBC访问数据库的步骤

在这里插入图片描述


客户端操作MySQL数据库的方式

  1. 使用第三方客户端来访问MySQL:SQLyog、Navicat

  2. 使用MySQL自带的命令行方式

  3. 通过Java来访问MySQL数据库,今天要学习的内容

    如何通过Java代码去操作数据库呢?

    Java中给我们提供专门的一套技术,可以通过其中的某些类和接口操作任何的数据库,这个技术就是今天要学习的JDBC。

    什么是JDBC:Sun公司为了简化、统一对数据库的操作,定义了一套java操作数据库的接口的规范,称之为JDBC。JDBC的全称为:java database connection (java和 数据库的连接 ) 就是使用java代码来操作数据库。
    JDBC的作用:Java通过JDBC就可以操作数据库


JDBC的由来

java程序依赖于jdk,jdk和数据库是2个不同的应用程序,那他们是怎么进行访问的呢?

要想搞清楚这个问题,我们必须了解下电脑是如何和其他硬件设备交互的。假设我们电脑安装完系统之后是一个无驱动的操作系统。那么当我们电脑想播放声音,即安装音响,必须得安装声卡驱动。同时电脑想和u盘硬件进行交互,也必须在电脑上安装对应的驱动。如果驱动安装失败,很显然他们是不能正常的交互的。这个安装驱动的其实就是为了定义他们两个相互交互的规则。只有统一了规则,才能交互。

同理:java程序想和数据库进行交互,也必须得安装数据库驱动,这样才能交互。但是,我们数据库有多种,这样就会导致不同的数据库具备不同的数据库驱动。

从而会导致在开发中作为程序员由于安装不同的数据库驱动而浪费很多时间,同时和数据库交互的java代码也得重新书写,这样都会导致效率很低。所以说,sun公司就会制定一套规则,这套规则就是用来java程序连接数据库的,然后各大数据库厂商只需要实现这个规则即可。这个规则就是jdbc技术,即接口。

换句话就是说,就是数据库厂商使用sun公司提供的接口,然后作为java程序员实现接口中的方法即可。接口中的方法体由具体的数据库厂商来实现。

在这里插入图片描述


JDBC的好处

  1. 我们只需要会调用JDBC接口中的方法即可,使用简单
  2. JDBC有关的类和接口:都在java.sql 和 javax.sql(扩展包) 包下
  3. 方法体由具体的数据库厂商来完成的
  4. 使用同一套Java代码,进行少量的修改就可以访问其他JDBC支持的数据库

JDBC核心API的介绍

JDBC会用到的包

  1. java.sql:JDBC访问数据库的基础包,在JavaSE中的包。如:java.sql.Connection
  2. javax.sql: JDBC访问数据库的扩展包
  3. 数据库的驱动,各大数据库厂商来实现。如:MySQL的驱动:com.mysql.jdbc.Driver

JDBC四个核心对象

这几个类都是在 java.sql 包中

  1. DriverManager(类): 数据库驱动管理类。这个类的作用:1)注册驱动; 2)创建java代码和数据库之间的连接,即获取Connection接口;
  2. Connection(接口): 是一个接口, 建立数据库连接的一个接口。作用:建立数据库和java代码之间的连接。表示与数据库创建的连接
  3. Statement(接口)、PreparedStatement(接口) (解决安全隐患问题,比如sql注入的问题): 数据库操作,向数据库发送sql语句。执行SQL语句的对象
  4. ResultSet: 结果集或一张虚拟表。 Statement 发送sql语句,得到的结果 封装在 ResultSet 中。

在这里插入图片描述

JDBC访问数据库的步骤

  1. 由DriverManager注册驱动程序

  2. 创建和数据库的连接对象Connection

  3. 由客户端发送SQL语句给服务器执行,SQL语句封装成Statement对象

  4. 查询到的结果集封装成ResultSet对象

  5. 在客户端可以从ResultSet中取出数据,处理结果集

  6. 释放资源,关闭连接对象






http://www.mrgr.cn/news/27220.html

相关文章:

  • 六、二分搜索-算法总结
  • Python数据分析 Pandas库-初步认识
  • 数据恢复软件|电脑数据丢失还能恢复吗?
  • golang实现正向代理http_proxy和https_proxy
  • YOLOv5/v8 + 双目相机测距
  • CSP-J 算法基础 图论
  • 单引号和双引号的区别
  • 无人机视角下落水救援检测数据集
  • 2020-11-03 统计负数零整数个数
  • 设计师私藏的 PDF 转 JPG 利器
  • 8.6小波变换(Wavelet Transform)边缘检测
  • 文件存储数据
  • jsp+sevlet+mysql图书管理系统
  • AI智能体 | 手捏 Coze 换脸大师 Bot,秒变天命人
  • strcmp
  • OKR 责任追踪
  • SAP自动化-ME54N采购申请审批
  • 20 递归算法精髓解析:基准、性质、案例(阶乘、斐波拉契、猴子吃桃、汉诺塔等)、与循环的对比
  • Numpy 单位矩阵创建 eye()函数详解
  • 办公必备的高效翻译工具大揭秘