DatabaseMetadata 接口通过JDBC驱动程序的实现提供基础数据源的信息。它主要由应用程序服务器和工具来决定如何与给定的数据源交互。应用程序也可以使用databasemetadata方法来获取有关数据源的信息,但这是不特别的

DatabaseMetadata 接口包括超过150个方法,可以根据他们提供的信息的类型分类:

关于数据源的一般信息

数据源是否支持给定的特性或功能

数据源的限制

数据源包含哪些SQL对象和这些对象的属性

由数据源提供的事务支持

DatabaseMetadata 接口还包含超过40个字段,这是用来作为各种 databasemetadata 方法返回值

本章提出的databasemetadata接口的概述,举例说明元数据方法的分类,并介绍了一些新的方法。然而,对于一个全面的列表,读者应该参考JDBC API规范

Note – 注–JDBC定义结果集元数据接口,会在第十五章 "结果集" 进行讨论

7.1 创建一个databasemetadata对象

一个 databasemetadata 对象由连接方法 getmetadata 创建。一旦创建,它就可以被用来动态地发现底层数据源的信息。代码示例7-1创建一个databasemetadata对象。

DatabaseMetaData dbmd = con.getMetadata();

int maxLen = dbmd.getMaxTableNameLength();

7.2 通用信息检索

一些databasemetadata方法用于动态地发现数据源的一般信息,以及一些关于它的实现细节。这一类中的这方法是

getURL

getUserName

getDatabaseProductVersion, getDriverMajorVersion and getDriverMinorVersion

getSchemaTerm, getCatalogTerm and getProcedureTerm

nullsAreSortedHigh and nullsAreSortedLow

usesLocalFiles and usesLocalFilePerTable

getSQLKeywords

7.3 确定功能支持

一大组 databasemetadata 方法可以用来确定一个特定的功能或功能集是由 Driver 或底层数据源支持。除此之外,一些方法描述了提供何种级别的支持。对单个特征支持的描述 的一些方法是:

supportsaltertablewithdropcolumn

supportsBatchUpdates

supportsPositionedDelete

supportsFullOuterJoins

supportsStoredProcedures

supportsMixedCaseQuotedIdentifiers

描述功能支持级别的方法包括:

supportsANSI92EntryLevelSQL

supportsCoreSQLGrammar

7.4 数据源的限制

这一组方法提供了给定数据源所施加的限制。这一类中的一些方法是:

getMaxRowSize

getMaxStatementLength

getMaxTablesInSelect

getMaxConnections

getMaxCharLiteralLength

getMaxColumnsInTable

这个组中的方法返回一个int类型的值,表示没有限制或限制是未知的

7.5 SQL对象及其属性

一些databasemetadata方法提供SQL对象的信息对于一个给定的数据源,还包括确定这些对象属性的方法,这一类的例子是:

getSchemas

getCatalogs

getTables

getPrimaryKeys

getProcedures

getProcedureColumns

getUDTs

getFunctions

getFunctionColumns

这是从一个databasemetadata方法返回ResultSet对象具有敏感性type_forward_only和并发concur_read_only。resultset.getholdability来确定返回的ResultSet对象的保持能力作为默认的保持能力是实现定义

附加的列以外的列定义为通过对给定的方法返回的ResultSet对象可以通过JDBC驱动程序厂商定义的,必须由他们的列标签的访问。这使得未来的JDBC规范能够如果需要现有的databasemetadata方法没有显著影响现有的应用程序添加额外的列

7.6 事务支持

一小部分方法提供有关数据源支持的事务语义的信息。这一类的例子包括

supportsMultipleTransactions

getDefaultTransactionIsolation

7.7 新的方法

JDBC 4.2 API提供了以下新的databasemetadata方法:

supportsRefCursors

getMaxLogicalLobSize

7.8 已更新的方法

JDBC 4.2 API修改现有的databasemetadata方法的定义:

getIndexInfo

以前返回CARDINALITY 和 PAGES 列现在返回一个long 类型的值

JDBC 4.2 API规范包括这些方法的更新定义。

Oracle cursor 元数据,第七章 数据库元数据(Database Metadata)相关推荐

  1. (数据库系统概论|王珊)第七章数据库设计-第一节:数据库设计概述

    注意:此部分内容和软件工程的知识点重合较多,更多请点击[免费分享]软件工程核心知识点 本章较分散,各节导航如下 (数据库系统概论|王珊)第七章数据库设计-第二节:需求分析 (数据库系统概论|王珊)第七 ...

  2. mysql第七章课后答案_第七章 数据库访问习题

    第七章 数据库访问 一.选择题 1.下面哪一项不是JDBC的工作任务?( ) A)与数据库建立连接 B)操作数据库,处理数据库返回的结果 C)在网页中生成表格 D)向数据库管理系统发送SQL语句 2. ...

  3. 数据库系统概念总结:第七章 数据库设计和E-R模型

    周末无事水文章,期末备考的总结资料 第七章 数据库设计和E-R模型 7.1 设计过程概览 7.1.1 设计阶段 需要完整地刻画未来数据库用户的数据需求 选择数据模型,并采用所选数据模型的概念将这些需求 ...

  4. (数据库系统概论|王珊)第七章数据库设计:习题

    名词解释 数据库设计(database design):数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满 ...

  5. 数据库系统概论:第七章 数据库设计

    7.1 数据库设计概述 数据库设计,广义上讲,是数据库及其应用系统的设计,即设计整个数据库应用系统:狭义上讲,是设计数据库本身,即设计数据库的各级模式并建立数据库,这是数据库应用系统设计的一部分. 数 ...

  6. (数据库系统概论|王珊)第七章数据库设计-第二节:需求分析

    文章目录 一:需求分析的任务 二:需求分析的步骤和方法 (1)步骤 (2)方法 三:数据字典 (1)定义 (2)组成 ①:数据项 ②:数据结构 ③:数据流 ④:数据存储 ⑤:处理过程 注意 更多可参照 ...

  7. 数据库系统:第七章数据库设计

    7.1 数据库设计概述 数据库设计: 广义地讲,设计整个数据库应用系统. 侠义地讲,是指设计数据库本身. 一般性定义:数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构, ...

  8. 数据库系统概论 第七章 数据库设计(1)特点,概述,设计方法,规范设计方法,新奥尔良方法,用户和数据库管理员,模式,外模式,概念模式,逻辑模式,内模式,需求分析,数据项,数据流,数据存储,处理过程

    关注公众号凡花花的小窝,收获更多的考研计算机专业编程相关的资料 7.1数据库设计概述 广义的讲,是数据库及其应用系统的设计,即设计整个数据库应用系统 狭义的将,是设计数据库本身,即设计数据库的各级模式 ...

  9. 第七章 数据库设计 E-R模型

    本章重点放在E-R模型和E-R图,这是这一章节最常用且非常重要的一个知识点,本章的目的就是讲述一个E-R图是怎么画出来的. 什么是E-R模型? E-R模型是有P.P.S.Chen提出的一个用E-R图描 ...

最新文章

  1. 利用https访问站点(基于linux系统)
  2. 苹果修复iPhone漏洞突显手机安全隐忧
  3. 网页中显示flash的时候部分显示红色叉好,而有的能够正常显示
  4. 【强化学习】一文带你理清强化学习
  5. 卖萌屋算法岗面试手册上线!通往面试自由之路
  6. ubuntu 下源码安装wireshark
  7. python共享内存通信mapofview_python map eval strPython socket模块实现的udp通信功能示例...
  8. c#类的多态和文件流复习
  9. 深水划水队项目---七天冲刺之day5
  10. 微信小程序跳过第三方的_微信小程序工具 第三方平台
  11. java io 创建临时文件,用Java创建一个指定的临时文件
  12. 每周收获(11-13)
  13. MATLAB快速入门(一)
  14. java字符串排序,(不使用sort)
  15. 通俗易懂谈强化学习之Q-Learning算法实战
  16. Android addr2line 工具使用
  17. 三大迷宫生成算法 (Maze generation algorithm) -- 深度优先,随机Prim,递归分割
  18. 汇编语言使用GPIO模拟IIC通信
  19. VC6.0快捷键一览表
  20. 【测试】软件测试之黑盒、白盒、灰盒测试

热门文章

  1. Python_Open3D
  2. 手机WAPI功能检测常见问题分析(系列连载三):预共享密钥功能
  3. 树莓派智能家居homeassistant:用esp32cam通过esphome制作一个摄像头
  4. 应用程序启动初始化失败 0xc0150002,请点击确定关闭应用程序
  5. 用计算机听音乐教案,《声音媒体》优秀教案
  6. excel集成python插件,DataNitro最新版|excel调用Python插件(DataNitro) v1.0免费最新版_星星软件园...
  7. 【软考】--计算机硬件基础
  8. Unity3D 定时任务
  9. 阿里云MQ服务报错:No route info of this topic
  10. 第三方支付常见几种支付方式的流程设计