*设为首页
*加入收藏
热门关键字: JAVA
>>当前位置:Java大本营>数据库专题>文章内容
jdbc元数据入门之DatabaseMetaData
作者: 发布时间:2007-12-20 23:12:34
jdbc到了版本3以后加入元数据的功能,有了jdbc元数据就可以很方便的获取数据库相关的信息,如果大家了解这项功能,就会发现操作数据库的时候会更得心应手,同时也可以开发出比以前更加自动化的程序.下面开始第一部分的教程.
获取最基本的数据库信息(数据库中的表):
public static void showTables(Connection connection) throws Exception {
    DatabaseMetaData meta = connection.getMetaData(); //获取数据库连接的元数据
    //查询连接的所有Table(如果需要查询视图等,可以在最后的数组中添加VIEW...,依此类推)
    ResultSet rsTable = meta.getTables(null, null, null, new String[] { "TABLE" });
    //获取到的数据是以ResultSet形式返回
    while (rsTable.next()) {
        System.out.println(rsTable.getString(1)); //第一列是Database名称
        System.out.println(rsTable.getString(2)); //第二列是用户名称(有的表可能没有对应的用户)
        System.out.println(rsTable.getString(3)); //第三列就是表名称
    }
}
执行上面的方法就可以将Connection中所有的表信息全部显示出来,这就是元数据的入门知识.当然这也是分析数据库连接信息的第一步.接下来看看如何获取Table的主外键信息.
public static List<String> getPrimaryKeys(Connection connection, String tableName) throws Exception {
    ArrayList<String> keyList = new ArrayList<String>();
    DatabaseMetaData meta = connection.getMetaData();
    ResultSet rsKey = meta.getPrimaryKeys(null, null, tableName); //获取制定表的主键列信息
    while (rsKey.next())
        keyList.add(rsKey.getString(4));
    return keyList;
}
上面的方法可以获取一个表的所有主键列的名称列表

public static List<String> getImportedKeys(Connection connection, String tableName) throws Exception {
    ArrayList<String> keyList = new ArrayList<String>();
    DatabaseMetaData meta = connection.getMetaData();
    ResultSet rsKey = meta.getImportedKeys(null, null, tableName);
    while (rsKey.next())
        keyList.add(rsKey.getString(8));
    return keyList;
}
上面的方法可以获取一个表中是外键列的名称列表

public static List<String> getExportedKeys(Connection connection, String tableName) throws Exception {
    ArrayList<String> keyList = new ArrayList<String>();
    DatabaseMetaData meta = connection.getMetaData();
    ResultSet rsKey = meta.getExportedKeys(null, null, tableName);
    while (rsKey.next())
        keyList.add(rsKey.getString(4));
    return keyList;
}
上面的方法可以获取一个表中是其他表的外键的列的名称列表
到这里大家已经知道如何通过元数据获取一些表的信息了,那么这一部分也就完成,接下来的文章会继续深入了解jdbc的元数据.

·core Java部分笔记 (03-06)
·解决数据库中取出的文章的换行问题 (03-06)
·用log4j将日志信息写入数据库中 (02-11)
·监控业务系统数据库连接 (02-05)
·基于JDBC的数据库连接池技术研究与应用(01-07)
·应用ORM框架针对遗留数据库做模型设计(01-01)
·数据库建模工具PowerDesigner总结 (12-22)
·用 PowerDesigner 设计数据库 (12-22)
·MYSQL5重装实例无法启动之解决方法 (12-20)
·JDBC对数据库的事务操作 (12-20)
·Java中对HashMap的深度分析与比较 (12-20)
·JAVA基础:将数据库操作封装到Javabean(12-20)
复制地址发给您的好友: [推荐文章] [返回顶部] [关闭窗口]
版权所有 Java大本营 1999-2007 转载请注明出处