获取数据库的所有表:(以MySQL和Oracle为例,其他类型的数据库接触不过,不做解释)
Connection接口中提供了DatabaseMetaData接口:
提供:getTables()方法,该方法需要传进4个参数:
第一个是数据库名称,对于MySQL,则对应相应的数据库,对于Oracle来说,则是对应相应的数据库实例,可以不填,也可以直接使用Connection的实例对象中的getCatalog()方法返回的值填充;
第二个是模式,可以理解为数据库的登录名,而对于Oracle也可以理解成对该数据库操作的所有者的登录名。对于Oracle要特别注意,其登陆名必须是大写,不然的话是无法获取到相应的数据,而MySQL则不做强制要求。
第三个是表名称,一般情况下如果要获取所有的表的话,可以直接设置为null,如果设置为特定的表名称,则返回该表的具体信息。
第四个是类型标准,以数组形式传值,有"TABLE"、"VIEW"、"SYSTEM TABLE"、"GLOBAL TEMPORARY"、"LOCAL TEMPORARY"、"ALIAS" 和 "SYNONYM"这几个经典的类型,一般使用”TABLE”,即获取所有类型为TABLE的表
它返回一个ResultSet对象,有10列,详细的显示了表的类型:
TABLE_CAT String => 表类别(可为 null)
TABLE_SCHEM String => 表模式(可为 null)
TABLE_NAME String => 表名称
TABLE_TYPE String => 表类型。
REMARKS String => 表的解释性注释
TYPE_CAT String => 类型的类别(可为 null)
TYPE_SCHEM String => 类型模式(可为 null)
TYPE_NAME String => 类型名称(可为 null)
SELF_REFERENCING_COL_NAME String => 有类型表的指定 "identifier" 列的名称(可为 null)
REF_GENERATION String
可根据需要使用
示例:
(MySQL)
DatabaseMetaData metaData = conn.getMetaData();
ResultSet rs = metaData.getTables(conn.getCatalog(), "root", null, new String[]{"TABLE"});
while(rs.next()) {
System.out.println(rs.getString("TABLE_NAME"));
}
(Oracle)
DatabaseMetaData metaData = conn.getMetaData();
ResultSet rs = metaData.getTables(conn.getCatalog(), "SCOTT", null, new String[]{"TABLE"});
while(rs.next()) {
System.out.println(rs.getString("TABLE_NAME"));
}
这两处的代码,唯一区别的是在第二个参数,Oracle不支持小写的,必须是大写的,换成小写则什么都获取不到,而MySQL则大小写俱可,不过我建议是全部使用大写,这里只是示例······
相关推荐
- `getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types)`:用于获取数据库中的表信息。 - `getColumns(String catalog, String schemaPattern, String tableNamePattern, ...
这篇文章将详细介绍如何利用`DatabaseMetaData`查询Oracle数据库的所有表。 首先,我们需要建立一个数据库连接。通过`DriverManager.getConnection(url, userName, password)`方法,我们可以获得`Connection`对象,...
DatabaseMetaData和ResultSetMetaData就是两个常用的获取数据库元数据相关信息的接口,本文只讲解DatabaseMetaData接口获取元数据的方法。 文章地址:http://blog.csdn.net/chen_zw/article/details/18816599
使用`DatabaseMetaData`对象的方法`getTables()`来获取所有表的信息。 ```java ResultSet tableRs = dbmd.getTables(null, null, "%", new String[]{"TABLE"}); ArrayList<String> tables = new ArrayList(); ...
2. **获取数据库连接**:通过`Conn.getConnection()`方法获取连接。注意这里的`Conn.getConnection()`应是自定义的方法,用于建立数据库连接。 3. **获取元数据**:通过`conn.getMetaData()`获取`DatabaseMetaData`...
在Java编程中,获取数据库的基本信息是常见的任务,这包括连接状态、数据库版本、表信息、用户权限等。本文将详细讲解如何使用Java JDBC(Java Database Connectivity)来获取这些信息。 首先,要与数据库建立连接...
这篇博客"怎样用JDBC查看数据库的详细信息"可能是关于如何通过JDBC接口查询和获取数据库中的数据,以及如何获取数据库的元数据。 首先,我们需要了解JDBC的基本步骤: 1. 加载驱动:在Java程序中,我们通常使用`...
本教程将深入探讨如何使用`DatabaseMetaData`对象来获取数据库的各种属性信息。 首先,你需要建立一个数据库连接,可以使用`DriverManager.getConnection()`方法,传入数据库URL、用户名和密码。一旦连接成功,你...
- `DatabaseMetaData`提供关于数据库的信息,如版本、表、列等。 10. **错误处理与异常** - JDBC的异常处理通常涉及`SQLException`及其子类,确保正确捕获并处理数据库操作中的错误。 以上内容构成了"JDBC与Java...
8. **元数据增强**:提供更丰富的数据库元数据信息,如`DatabaseMetaData`接口,可用于获取表结构、列信息等。 9. **性能优化**:引入了Statement的`executeUpdate(String sql, int autoGeneratedKeys)`方法,可以...
metadata-core”和数据展示模块“database-metadata-view”,其中核心模块采用纯JDBC方式,通过java.sql.DatabaseMetaData对象获取数据库元数据信息,不依赖任何外部jar包,适用于数据库字段和表结构的查询需求。
7. **DatabaseMetaData**: 提供关于数据库、驱动程序和连接的信息,如数据库版本、表信息、列信息等。 在实际应用中,使用JDBC API通常遵循以下步骤: 1. 加载驱动:通过`Class.forName()`加载对应的数据库驱动。 ...
- **数据库元数据**:通过`java.sql.DatabaseMetaData`接口可以获取有关数据库的信息,如支持的SQL语法等。 ### 示例分析 #### 连接数据库 示例中的代码首先导入了必要的包: ```java import java.sql.*; ``` ...
本篇将围绕Java结合`RestltData`获取数据库、数据库表、表字段以及执行SQL等数据源操作的相关知识点进行深入探讨。 首先,`RestltData`这个名字可能是"Result Data"的缩写,它可能是一个用来封装查询结果的对象,...
获取数据库描述信息是一项基本操作,它有助于开发者理解数据库结构、表的设计以及字段属性等关键信息。在这个主题中,我们将深入探讨如何获取这些信息,主要关注源码层面和使用工具的方法。 首先,我们需要了解...
在Java编程中,获取数据库对SQL支持的信息是开发数据库应用时常见的需求,这涉及到JDBC(Java Database Connectivity)API的使用。JDBC是Java中用于与各种类型数据库交互的一组接口和类,它允许程序员使用标准的Java...
当你需要获取数据库中所有表的所有属性的所有值时,这通常涉及到数据库的元数据查询以及SQL语句的构造。以下将详细讲解如何实现这一目标。 首先,我们需要连接到数据库。在Java中,我们通常使用JDBC(Java Database...
此外,JDBC还提供了`DatabaseMetaData`接口,可以获取关于数据库的各种元数据,如数据库版本、支持的SQL特性、表信息等。 在设计数据库时,遵循规范化原则是非常重要的。规范化主要包括第一范式(1NF)、第二范式...
7. **数据库元数据**:通过`DatabaseMetaData`获取数据库的结构和属性信息。 《Java数据库接口JDBC入门基础讲座》可能是针对初学者的教程,着重于介绍JDBC的基础概念和基本操作,包括如何设置数据库连接参数、执行...
包括CallableStatement用于调用存储过程,ResultSetMetaData获取列信息,DatabaseMetaData获取数据库元数据,以及RowSet接口的离线数据处理能力。 9. **JDBC与ORM框架的关系** ORM(Object-Relational Mapping)...