`

(八) 元数据

 
阅读更多

JDBC可以提供关于数据库结构和表的详细信息,主要用于编写数据库工具,分析数据库的结构信息。
在SQL中,描述数据库或其组成部分的数据成为元数据(区别存在数据库中的实际数据)
JDBC中提供三类元数据:数据库、结果集和预备语句
1.数据库元数据DatabaseMetaData
(1)了解数据库的信息
e.g.  查询数据库中所有表的表名

DatabaseMetaData meta = conn.getMetaData();     //从数据库连接中获取一个DatabaseMetaData对象
ResultSet result = meta.getTables(null, null, null, new String[]{"TABLE"});
while(result.next()){
    System.out.println(result.getString(3));    //该结果集每行包含数据库中一张表的信息,第三列是表的名称。
}

 (2) 用于查询数据库的相关信息,包括一些使用特别的名字进行调用的方法。针对有特殊要求的高级用户,尤其是编写涉及多个数据库且具有高可移植性的代码。

e.g.  meta.supportsCatalogsInPrivilegeDefinitions(); //获取某个类别名称是否可以在特权定义语句中使用
        meta.nullPlusNonNullIsNull();                  //获取此数据库是否支持 NULL 值与等于 NULL 的非 NULL 值之间的连接。

 

2.结果集元数据ResultSetMetaData
(1)用于提供结果集的相关信息。每当通过查询得到一个结果集,我们都可以获取结果集的列数以及每一列的名称、类型和字段宽度。

 ResultSet result = stmt.executeQuery("SELECT * FROM " + tablename);
      ResultSetMetaData meta = result.getMetaData();
      for(int i=1;i<meta.getColumnCount();i++){
        String columnName = meta.getColumnLabel(i);
        int columnWidth = meta.getColumnDisplaySize(i);
        ...
      }

 

3.预备语句PreparedStatement预备语句元数据ParameterMetaData
可用于获取关于 PreparedStatement 对象中每个参数标记的类型和属性信息的对象。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics