JDBC介绍

JDBC的全称是Java数据库连接(Java Database connect),是Java程序开发中连接数据库的重要工具。

使用JDBC的原因

Java通过JDBC技术实现对各种数据库的访问,它充当了Java应用程序与各种数据之间进行对话的媒介,通过JDBC可以把程序中的数据持久保存到数据库中,这就是一种持久化机制,这里的持久化是一个专业术语,指将程序中的数据在瞬时状态和持久状态之间转换的机制。通俗的讲,就是讲瞬时数据(如内存中的数据,一旦关闭就会丢失)持久化为持久数据(如持久化至数据库中的数据,即使计算机关闭也能够长久保存)。

JDBC的工作原理

JDBC主要由JDBC API、JDBC Driver Manager和JDBC驱动组成。
JDBC的工作原理:

顶层是软件工程师写的Java应用程序,Java应用程序可以使用集成在JDK中的Java.sql
和javax.sql包中的JDBC API连接和操作数据库。
1) JDBC API
JDBC API提供了一套Java应用程序与各种数据库交互的标准接口,如Connection(连接)接口,Statement接口、ResultSet(结果集)接口、PreparedStatement接口等。
2) JDBC Driver Manager
JDBC Driver Manager是JDBC体系结构的支柱,它负责管理各种驱动(如MySQL数据库或Oracle数据库的JDBC驱动等

JDBC驱动

JDBC驱动并不包含在JDK中,它由各种数据库厂商或第三方中间厂商提供,负责连接各种数据库。

JDBC API

是Java程序应用程序与各种数据库交互的标准接口,主要功能是建立与数据库的连接,发送SQL语句和返回处理结果。
主要类/接口如下:
1.与数据库建立连接
DriverManager类:装载驱动程序,并为创建新的数据库连接提供支持。
Connection接口:负责连接数据库并担任传输数据的任务。
2.发送SQL语句
Statement接口:由Connection产生,负责执行SQL语句。
PreparedStatement接口:上面接口的子接口,也由Connection产生,同样负责执行SQL语句。与上面接口相比,具有高安全性、高性能、高可读性和高可维护性等优点。
3.返回处理结果
ResultSet接口:负责保存和处理Statement执行后产生的查询结果。
使用
JDBC操作数据库的步骤
加载JDBC驱动。
与数据库建立连接。
发生SQl语句,并得到返回结果。
处理返回结果。

与数据库建立连接

  • DriverManager类:装载驱动程序,并为创建新的数据库连接提取提供支持。
  • Connection接口:负责连接数据库并担任传送数据库任务。

发送SQL语句

  • Statement接口:由Connection产生,负责执行SQL语句。
  • PreparedStatement接口:Statement的子接口,也由Connection产生,同样负责执行SQL语句与Statement接口相比,PreparedStatement接口具有高安全、高性能、高可读性和高可维护性等优点。

返回处理结果

ResultSet接口:负责保存和处理Statement执行后产生的查询结果。

使用JDBC连接数据库

导入JDBC的驱动JAR包后,需要加载驱动。在本版驱动中,驱动类的类名是com.mysql.cj.jbc.Driver。通常使用Class.forName加载JDBC驱动类,这样做的目的是增加代码的灵活性。

使用Calss.forName加载驱动。

关键代码如下。

  try{

​    class.forName(“JDBC驱动类的名称”);

  }catch(ClassNotFoundException e){

​    //异常输出代码

  }

Class.forName()方法将指定的JDBC驱动类加载到Java虚拟机中。若系统中不存在指定的类,则会引发异常,异常类型为ClassNotFoundException

数据库连接字符串的语法格式如下。

jdbc:数据库://ip”端口/数据库名称[?连接参数=参数值]

其中:

  • 数据库:JDBC连接的目标数据库,如MySQL数据库。
  • Ip:JDBC所连接的目标数据库地址,如果是本地数据库,则可以为localhost,即本地主机名
  • 端口:连接数据库的端口号,如果连接MySQL数据库,则默认端口号为3306。
  • 数据库名称:目标数据库的名称,如hospital。
  • 连接参数:连接数据库时的参数配置。

使用Statement执行数据库操作

获取Connection对象后,需要先使用Connection对象的createStatement()方法创建Statement对象,再通过Statement对象将SQL语句反送到MySQL服务器中执行数据操作。

使用Statement接口插入数据

可以使用Statement接口的exetcuteUpdate()方法执行插入数据操作。

使用Statement接口更新数据

使用Statement接口更新数据库中数据的步骤与插入数据类似,都可以使用executeUpdate()方法或execute()方法实现更新数据库的操作。

使用PreparedStatement接口防止SQL注入

​ 在应用安全领域由一种常见的攻击方式 ——SQL注入(SQL Injection)攻击。这种攻击方式主要通过利用应用程序在拼接SQL字符串时产生的漏洞,绕过程序设计的安全机制完成数据库的越权操作。

最后修改:2022 年 11 月 11 日
如果觉得我的文章对你有用,请随意赞赏