元数据
1.介绍
元数据(metaData) 指数据库中 库、表、列的定义信息
常用元数据:
1. DataBaseMetaData 数据库元数据
怎样获取一个DataBaseMetaData?
Connection接口中定义了一个方法 getMetaData();
常用API:
dmd.getDriverName(); //获取驱动名称
dmd.getUserName(); //获取用户名
dmd.getURL(); //获取url
dmd.getDatabaseProductName(); //获取数据库名称dmd.getDatabaseProductVersion(); //获取数据库版本.
ResultSet getPrimaryKeys(String catalog,
String schema,
String table)
throws SQLException
获取表中主键相关描述
每个主键列描述都有以下列:
TABLE_CAT String => 表类别(可为 null)
TABLE_SCHEM String => 表模式(可为 null)
TABLE_NAME String => 表名称
COLUMN_NAME String => 列名称
KEY_SEQ short => 主键中的序列号(值 1 表示主键中的第一列,值 2 表示主键中的第二列)。
PK_NAME String => 主键的名称(可为 null)
2.. ParameterMetaData 参数元数据
参数元数据主要用于获取:
sql语句中占位符的相关信息.
怎样获取ParameterMetaData?
在PreparedStatement中有一个方法getParameterMetaData可以获取.
怎样使用?
pmd.getParameterCount(); // 获取参数 个数
pmd.getParameterTypeName(1); //获取参数的类型
注意:在获取参数类型时会产生异常
java.sql.SQLException: Parameter metadata not available for the given statement
解决方案:
在url后添加参数
jdbc:mysql:///day18?generateSimpleParameterMetadata=true
添加这个参数后,我们在获取,它的结果也是varchar,原因:是mysql驱动的支持问题。
3. ResultSetMetaData 结果集元数据
怎样获取结果集元数据?
可以通过ResultSet的getMetaData()方法获取.
怎样使用?
rsmd.getColumnCount(); //获取结果集中列数量
rsmd.getColumnName(2); //获取结果集中指定列的名称
rsmd.getColumnTypeName(3); //获取结果集中指定列的类型。