本文包括:
1、元数据- DatabaseMetaData
2、元数据- ParameterMetaData
3、元数据- ResultSetMetaData
4、使用元数据简化JDBC代码
Paste_Image.png
1、元数据- DatabaseMetaData
元数据:数据库、表、列的定义信息,关于数据库的整体综合信息。
获得对象:Connection.getMetaData()
DataBaseMetaData类常用方法
getURL():返回一个String类对象,代表数据库的URL。
getUserName():返回连接当前数据库管理系统的用户名。
getDriverName():返回驱动驱动程序的名称。
getPrimaryKeys(String catalog, String schema, String table):返回指定表主键的结果集,一般catalog、schema都传入null,得到一个结果集resultset,API文档中有详细描述:
getPrimaryKeys(FROM API DOCUMENT)
ResultSet getPrimaryKeys(String catalog,
String schema,
String table)
throws SQLException
获取对给定表的主键列的描述。它们根据 COLUMN_NAME 进行排序。
每个主键列描述都有以下列:
TABLE_CAT String =表类别(可为 null)
TABLE_SCHEM String =表模式(可为 null)
TABLE_NAME String =表名称
COLUMN_NAME String =列名称
KEY_SEQ short =主键中的序列号(值 1 表示主键中的第一列,值 2 表示主键中的第二列)。
PK_NAME String =主键的名称(可为 null)
参数:
catalog - 类别名称;它必须与存储在数据库中的类别名称匹配;该参数为 "" 表示获取没有类别的那些描述;为 null 则表示该类别名称不应该用于缩小搜索范围
schema - 模式名称;它必须与存储在数据库中的模式名称匹配;该参数为 "" 表示获取没有模式的那些描述;为 null 则表示该模式名称不应该用于缩小搜索范围
table - 表名称;它必须与存储在数据库中的表名称匹配
返回:
ResultSet - 每一行都是一个主键列描述
抛出:
SQLException - 如果发生数据库访问错误
demo:
public void demo1() throws SQLException {
// 通过Connection 获得 DataBaseMetaData
Connection conn = JDBCUtils.getConnection();
DatabaseMetaData databaseMetaData = conn.getMetaData();
// 获得JDBC连接参数信息
System.out.println(databaseMetaData.getURL());
System.out.println(databaseMetaData.getDriverName());
System.out.println(databaseMetaData.getUserName());
// 获得table主键信息
ResultSet rs = databaseMetaData.getPrimaryKeys(null, null, "users");
while (rs.next()) {
System.out.println(rs.getSt