更新时间:2026-07-28 GMT+08:00
分享

技术原理

JDBC架构主要包括三个组件:

  • JDBC API(Interface Layer)
  • JDBC驱动管理程序(Driver Manager)
  • JDBC驱动程序(Driver Layer)

Java应用程序发起数据库操作请求(如查询、更新),通过JDBC API接口与JDBC驱动管理程序通信,而JDBC驱动管理程序负责加载和管理JDBC驱动程序。JDBC驱动程序则负责与特定的数据库通信,发送SQL到数据库。数据库执行SQL操作并返回结果集。JDBC的系统架构请参见图1

图1 JDBC系统架构

接口介绍

JDBC接口是一套提供给用户的API方法,使Java应用程序能够与各种不同的数据库进行交互。java.sql包是JDBC核心接口。表1介绍了JDBC中常用的一些接口和方法,涵盖了连接数据库、执行SQL语句、获取结果集、关闭连接等常见操作。

JDBC接口和方法的详细介绍,请参见JDBC接口参考章节。

表1 JDBC常用接口方法参考

接口

接口功能描述

关键方法

方法功能描述

java.sql.DriverManager

管理JDBC驱动,提供获取数据库连接的入口。

getConnection(String url, String user, String password)

通过URL+用户名+密码建立数据库连接。

getConnection(String url, Properties info)

通过URL+Properties(含更多参数)建立数据库连接。

java.sql.Connection

代表与数据库的会话,管理事务和创建Statement。

createStatement()

创建Statement。

prepareStatement(String sql)

创建PreparedStatement。

prepareCall(String sql)

创建CallableStatement。

close()

关闭数据库连接。

java.sql.Statement

执行静态SQL语句(无参数)。

executeQuery(String sql)

执行查询类SQL语句,返回ResultSet。

executeUpdate(String sql)

执行数据修改类SQL语句(如增删改),返回影响行数。

execute(String sql)

执行任意SQL,返回布尔值表示是否有结果集。

addBatch(String sql)

添加批处理语句。

executeBatch()

执行批处理。

close()

关闭Statement对象。

java.sql.PreparedStatement

预编译SQL语句(支持参数化查询,防止SQL注入)。

setInt(int parameterIndex, int x)

设置参数。

setString(int parameterIndex, String x)

setFloat(int parameterIndex, float x)

executeQuery()

执行已编译的查询类SQL语句,返回ResultSet。

executeUpdate()

执行已编译的数据修改类SQL语句,返回影响行数。

execute()

执行已编译的任意SQL语句,返回布尔值表示是否有结果集。

addBatch()

添加预编译语句到批处理。

executeBatch()

执行批处理。

close()

关闭PreparedStatement对象。

java.sql.CallableStatement

调用数据库存储过程。

registerOutParameter(int parameterIndex, int type)

注册输出参数。

getInt(int columnIndex)

获取存储过程的输出参数值。

getString(int columnIndex)

getFloat(int columnIndex)

java.sql.ResultSet

表示查询结果集。

next()

移动游标到下一行。

getInt(int columnIndex)

按列标获取int型数据。

getInt(String columnLabel)

按列名获取int型数据。

getString(int columnIndex)

按列标获取String型数据。

getString(String columnLabel)

按列名获取String型数据。

getMetaData()

获取结果集元数据(如列名、类型)。

close()

关闭ResultSet对象。

java.sql.ResultSetMetaData

描述结果集的元数据(如列名、类型等)。

getColumnCount()

获取列数。

getColumnName(int column)

获取列名。

getColumnTypeName(int column)

获取列类型。

相关文档