网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务
更新时间:2024-12-06 GMT+08:00
分享

JDBC接口参考

JDBC接口是一套提供给用户的API方法,本节将对部分常用接口做具体描述,若涉及其他接口可参考JDK1.6(软件包)/JDBC4.0中相关内容。

java.sql.Connection

java.sql.Connection是数据库连接接口。

表1 对java.sql.Connection接口的支持情况

方法名

返回值类型

支持JDBC 4

close()

void

Yes

commit()

void

Yes

createStatement()

Statement

Yes

getAutoCommit()

boolean

Yes

getClientInfo()

Properties

Yes

getClientInfo(String name)

String

Yes

getTransactionIsolation()

int

Yes

isClosed()

boolean

Yes

isReadOnly()

boolean

Yes

prepareStatement(String sql)

PreparedStatement

Yes

rollback()

void

Yes

setAutoCommit(boolean autoCommit)

void

Yes

setClientInfo(Properties properties)

void

Yes

setClientInfo(String name,String value)

void

Yes

接口内部默认使用自动提交模式,若通过setAutoCommit(false)关闭自动提交,将会导致后面执行的语句都受到显式事务包裹,数据库中不支持事务中执行的语句不能在此模式下执行。

java.sql.CallableStatement

java.sql.CallableStatement是存储过程执行接口。

表2 对java.sql.CallableStatement的支持情况

方法名

返回值类型

支持JDBC 4

registerOutParameter(int parameterIndex, int type)

void

Yes

wasNull()

boolean

Yes

getString(int parameterIndex)

String

Yes

getBoolean(int parameterIndex)

boolean

Yes

getByte(int parameterIndex)

byte

Yes

getShort(int parameterIndex)

short

Yes

getInt(int parameterIndex)

int

Yes

getLong(int parameterIndex)

long

Yes

getFloat(int parameterIndex)

float

Yes

getDouble(int parameterIndex)

double

Yes

getBigDecimal(int parameterIndex)

BigDecimal

Yes

getBytes(int parameterIndex)

byte[]

Yes

getDate(int parameterIndex)

Date

Yes

getTime(int parameterIndex)

Time

Yes

getTimestamp(int parameterIndex)

Timestamp

Yes

getObject(int parameterIndex)

Object

Yes

  • 不允许含有OUT参数的语句执行批量操作。
  • 以下方法是从java.sql.Statement继承而来:close,execute,executeQuery,executeUpdate,getConnection,getResultSet,getUpdateCount,isClosed,setMaxRows , setFetchSize。
  • 以下方法是从java.sql.PreparedStatement继承而来:addBatch,clearParameters,execute,executeQuery,executeUpdate,getMetaData,setBigDecimal,setBoolean,setByte,setBytes,setDate,setDouble,setFloat,setInt,setLong,setNull,setObject,setString,setTime,setTimestamp 。

java.sql.DatabaseMetaData

java.sql.DatabaseMetaData是数据库对象定义接口。

表3 对java.sql.DatabaseMetaData的支持情况

方法名

返回值类型

支持JDBC 4

getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types)

ResultSet

Yes

getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern)

ResultSet

Yes

getTableTypes()

ResultSet

Yes

getUserName()

String

Yes

isReadOnly()

boolean

Yes

nullsAreSortedHigh()

boolean

Yes

nullsAreSortedLow()

boolean

Yes

nullsAreSortedAtStart()

boolean

Yes

nullsAreSortedAtEnd()

boolean

Yes

getDatabaseProductName()

String

Yes

getDatabaseProductVersion()

String

Yes

getDriverName()

String

Yes

getDriverVersion()

String

Yes

getDriverMajorVersion()

int

Yes

getDriverMinorVersion()

int

Yes

usesLocalFiles()

boolean

Yes

usesLocalFilePerTable()

boolean

Yes

supportsMixedCaseIdentifiers()

boolean

Yes

storesUpperCaseIdentifiers()

boolean

Yes

storesLowerCaseIdentifiers()

boolean

Yes

supportsMixedCaseQuotedIdentifiers()

boolean

Yes

storesUpperCaseQuotedIdentifiers()

boolean

Yes

storesLowerCaseQuotedIdentifiers()

boolean

Yes

storesMixedCaseQuotedIdentifiers()

boolean

Yes

supportsAlterTableWithAddColumn()

boolean

Yes

supportsAlterTableWithDropColumn()

boolean

Yes

supportsColumnAliasing()

boolean

Yes

nullPlusNonNullIsNull()

boolean

Yes

supportsConvert()

boolean

Yes

supportsConvert(int fromType, int toType)

boolean

Yes

supportsTableCorrelationNames()

boolean

Yes

supportsDifferentTableCorrelationNames()

boolean

Yes

supportsExpressionsInOrderBy()

boolean

Yes

supportsOrderByUnrelated()

boolean

Yes

supportsGroupBy()

boolean

Yes

supportsGroupByUnrelated()

boolean

Yes

supportsGroupByBeyondSelect()

boolean

Yes

supportsLikeEscapeClause()

boolean

Yes

supportsMultipleResultSets()

boolean

Yes

supportsMultipleTransactions()

boolean

Yes

supportsNonNullableColumns()

boolean

Yes

supportsMinimumSQLGrammar()

boolean

Yes

supportsCoreSQLGrammar()

boolean

Yes

supportsExtendedSQLGrammar()

boolean

Yes

supportsANSI92EntryLevelSQL()

boolean

Yes

supportsANSI92IntermediateSQL()

boolean

Yes

supportsANSI92FullSQL()

boolean

Yes

supportsIntegrityEnhancementFacility()

boolean

Yes

supportsOuterJoins()

boolean

Yes

supportsFullOuterJoins()

boolean

Yes

supportsLimitedOuterJoins()

boolean

Yes

isCatalogAtStart()

boolean

Yes

supportsSchemasInDataManipulation()

boolean

Yes

supportsSavepoints()

boolean

Yes

supportsResultSetHoldability(int holdability)

boolean

Yes

getResultSetHoldability()

int

Yes

getDatabaseMajorVersion()

int

Yes

getDatabaseMinorVersion()

int

Yes

getJDBCMajorVersion()

int

Yes

getJDBCMinorVersion()

int

Yes

java.sql.Driver

java.sql.Driver是数据库驱动接口。

表4 对java.sql.Driver的支持情况

方法名

返回值类型

支持JDBC 4

acceptsURL(String url)

boolean

Yes

connect(String url, Properties info)

Connection

Yes

jdbcCompliant()

boolean

Yes

getMajorVersion()

int

Yes

getMinorVersion()

int

Yes

java.sql.PreparedStatement

java.sql.PreparedStatement是预处理语句接口。

表5 对java.sql.PreparedStatement的支持情况

方法名

返回值类型

支持JDBC 4

clearParameters()

void

Yes

execute()

boolean

Yes

executeQuery()

ResultSet

Yes

executeUpdate()

int

Yes

getMetaData()

ResultSetMetaData

Yes

setBoolean(int parameterIndex, boolean x)

void

Yes

setBigDecimal(int parameterIndex, BigDecimal x)

void

Yes

setByte(int parameterIndex, byte x)

void

Yes

setBytes(int parameterIndex, byte[] x)

void

Yes

setDate(int parameterIndex, Date x)

void

Yes

setDouble(int parameterIndex, double x)

void

Yes

setFloat(int parameterIndex, float x)

void

Yes

setInt(int parameterIndex, int x)

void

Yes

setLong(int parameterIndex, long x)

void

Yes

setNString(int parameterIndex, String value)

void

Yes

setShort(int parameterIndex, short x)

void

Yes

setString(int parameterIndex, String x)

void

Yes

addBatch()

void

Yes

executeBatch()

int[]

Yes

clearBatch()

void

Yes

  • addBatch()、execute()必须在clearBatch()之后才能执行。
  • 调用executeBatch()方法并不会清除batch。用户必须显式使用clearBatch()清除 。
  • 在添加了一个batch的绑定变量后,用户若想重用这些值(再次添加一个batch),无需再次使用set*()方法 。
  • 以下方法是从java.sql.Statement继承而来:close,execute,executeQuery,executeUpdate,getConnection,getResultSet,getUpdateCount,isClosed,setMaxRows, setFetchSize。

java.sql.ResultSet

java.sql.ResultSet是执行结果集接口。

表6 对java.sql.ResultSet的支持情况

方法名

返回值类型

支持JDBC 4

findColumn(String columnLabel)

int

Yes

getBigDecimal(int columnIndex)

BigDecimal

Yes

getBigDecimal(String columnLabel)

BigDecimal

Yes

getBoolean(int columnIndex)

boolean

Yes

getBoolean(String columnLabel)

boolean

Yes

getByte(int columnIndex)

byte

Yes

getBytes(int columnIndex)

byte[]

Yes

getByte(String columnLabel)

byte

Yes

getBytes(String columnLabel)

byte[]

Yes

getDate(int columnIndex)

Date

Yes

getDate(String columnLabel)

Date

Yes

getDouble(int columnIndex)

double

Yes

getDouble(String columnLabel)

double

Yes

getFloat(int columnIndex)

float

Yes

getFloat(String columnLabel)

float

Yes

getInt(int columnIndex)

int

Yes

getInt(String columnLabel)

int

Yes

getLong(int columnIndex)

long

Yes

getLong(String columnLabel)

long

Yes

getShort(int columnIndex)

short

Yes

getShort(String columnLabel)

short

Yes

getString(int columnIndex)

String

Yes

getString(String columnLabel)

String

Yes

getTime(int columnIndex)

Time

Yes

getTime(String columnLabel)

Time

Yes

getTimestamp(int columnIndex)

Timestamp

Yes

getTimestamp(String columnLabel)

Timestamp

Yes

isAfterLast()

boolean

Yes

isBeforeFirst()

boolean

Yes

isFirst()

boolean

Yes

next()

boolean

Yes

  • 一个Statement不能有多个处于“open”状态的ResultSet。
  • 用于遍历结果集(ResultSet)的游标(Cursor)在被提交后不能保持“open”的状态。

java.sql.ResultSetMetaData

java.sql.ResultSetMetaData是对ResultSet对象相关信息的具体描述。

表7 对java.sql.ResultSetMetaData的支持情况

方法名

返回值类型

支持JDBC 4

getColumnCount()

int

Yes

getColumnName(int column)

String

Yes

getColumnType(int column)

int

Yes

getColumnTypeName(int column)

String

Yes

java.sql.Statement

java.sql.Statement是SQL语句接口。

表8 对java.sql.Statement的支持情况

方法名

返回值类型

支持JDBC 4

close()

void

Yes

execute(String sql)

boolean

Yes

executeQuery(String sql)

ResultSet

Yes

executeUpdate(String sql)

int

Yes

getConnection()

Connection

Yes

getResultSet()

ResultSet

Yes

getQueryTimeout()

int

Yes

getUpdateCount()

int

Yes

isClosed()

boolean

Yes

setQueryTimeout(int seconds)

void

Yes

setFetchSize(int rows)

void

Yes

cancel()

void

Yes

通过setFetchSize可以减少结果集在客户端的内存占用情况。它的原理是通过将结果集打包成游标,然后分段处理,所以会加大数据库与客户端的通信量,会有性能损耗。

由于数据库游标是事务内有效,所以,在设置setFetchSize的同时,需要将连接设置为非自动提交模式,setAutoCommit(false)。同时在业务数据需要持久化到数据库中时,在连接上执行提交操作。

javax.sql.ConnectionPoolDataSource

javax.sql.ConnectionPoolDataSource是数据源连接池接口。

表9 对javax.sql.ConnectionPoolDataSource的支持情况

方法名

返回值类型

支持JDBC 4

getLoginTimeout()

int

Yes

getLogWriter()

PrintWriter

Yes

getPooledConnection()

PooledConnection

Yes

getPooledConnection(String user,String password)

PooledConnection

Yes

setLoginTimeout(int seconds)

void

Yes

setLogWriter(PrintWriter out)

void

Yes

javax.sql.DataSource

javax.sql.DataSource是数据源接口。

表10 对javax.sql.DataSource接口的支持情况

方法名

返回值类型

支持JDBC 4

getConnection()

Connection

Yes

getConnection(String username,String password)

Connection

Yes

getLoginTimeout()

int

Yes

getLogWriter()

PrintWriter

Yes

setLoginTimeout(int seconds)

void

Yes

setLogWriter(PrintWriter out)

void

Yes

javax.sql.PooledConnection

javax.sql.PooledConnection是由连接池创建的连接接口。

表11 对javax.sql.PooledConnection的支持情况

方法名

返回值类型

支持JDBC 4

addConnectionEventListener (ConnectionEventListener listener)

void

Yes

close()

void

Yes

getConnection()

Connection

Yes

removeConnectionEventListener (ConnectionEventListener listener)

void

Yes

addStatementEventListener (StatementEventListener listener)

void

Yes

removeStatementEventListener (StatementEventListener listener)

void

Yes

javax.naming.Context

javax.naming.Context是连接配置的上下文接口。

表12 对javax.naming.Context的支持情况

方法名

返回值类型

支持JDBC 4

bind(Name name, Object obj)

void

Yes

bind(String name, Object obj)

void

Yes

lookup(Name name)

Object

Yes

lookup(String name)

Object

Yes

rebind(Name name, Object obj)

void

Yes

rebind(String name, Object obj)

void

Yes

rename(Name oldName, Name newName)

void

Yes

rename(String oldName, String newName)

void

Yes

unbind(Name name)

void

Yes

unbind(String name)

void

Yes

javax.naming.spi.InitialContextFactory

javax.naming.spi.InitialContextFactory是初始连接上下文工厂接口。

表13 对javax.naming.spi.InitialContextFactory的支持情况

方法名

返回值类型

支持JDBC 4

getInitialContext(Hashtable<?,?> environment)

Context

Yes

CopyManager

CopyManager是GaussDB(DWS) JDBC驱动中提供的一个API接口类,用于批量向GaussDB(DWS)集群中导入数据。

CopyManager的继承关系

CopyManager类位于org.postgresql.copy Package中,继承自java.lang.Object类,该类的声明如下:

public class CopyManager
extends Object

构造方法

public CopyManager(BaseConnection connection)
throws SQLException

常用方法

表14 CopyManager常用方法

返回值

方法

描述

throws

CopyIn

copyIn(String sql)

-

SQLException

long

copyIn(String sql, InputStream from)

使用COPY FROM STDIN从InputStream中快速向数据库中的表加载数据。

SQLException,IOException

long

copyIn(String sql, InputStream from, int bufferSize)

使用COPY FROM STDIN从InputStream中快速向数据库中的表加载数据。

SQLException,IOException

long

copyIn(String sql, Reader from)

使用COPY FROM STDIN从Reader中快速向数据库中的表加载数据。

SQLException,IOException

long

copyIn(String sql, Reader from, int bufferSize)

使用COPY FROM STDIN从Reader中快速向数据库中的表加载数据。

SQLException,IOException

CopyOut

copyOut(String sql)

-

SQLException

long

copyOut(String sql, OutputStream to)

将一个COPY TO STDOUT的结果集从数据库发送到OutputStream类中。

SQLException,IOException

long

copyOut(String sql, Writer to)

将一个COPY TO STDOUT的结果集从数据库发送到Writer类中。

SQLException,IOException

相关文档