返回顶部

收藏

使用jdbc的Connection类获得DatabaseMetaData数据库库表,列信息

更多

之前一直没有注意到jdbc的Connection接口中有一个getMetaData()方法,此方法会返回一个DatabaseMetaData接口的实例。

通过此接口我们可以获得数据库中的库信息,表信息以及数据表的列信息。

如下实例方法

    @Override
    public List<String> getDatabases(String url) throws SQLException {
        List<String> result = new ArrayList<String>();

        Connection conn = null;

        try {
            conn = this.getConnection(url);
            DatabaseMetaData meta = conn.getMetaData();
            ResultSet schemasRS = meta.getSchemas();
            while (schemasRS.next()) {
                String schema = schemasRS.getString("TABLE_SCHEM");
                if (schema == null || schema.length() == 0){
                    continue;
                }
                result.add(schema);
            }
        } finally {
            if (conn != null) {
                conn.close();
            }
        }

        return result;
    }

    @Override
    public List<String> getTables(DbServer dbServer, String database)
            throws SQLException {
        List<String> result = new ArrayList<String>();
        String connUrl = this.getConnectionUrl(dbServer, database);
        Connection conn = null;

        try {
            conn = DriverManager.getConnection(connUrl);
            DatabaseMetaData meta = conn.getMetaData();
            ResultSet rsTables = meta.getTables(null, database , null, null);
            while(rsTables.next()) {
                String tableName = rsTables.getString("TABLE_NAME");
                result.add(tableName);
            }
        } finally {
            if (conn != null) {
                conn.close();
            }
        }

        return result;
    }

这个是jdbc的统一接口,如果要获得数据库的库定义,表定义等信息,推荐使用此方法。

标签:java,jdbc,DatabaseMetaData

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. IT江湖 发表 2014-04-19 14:26:01 JDBC连接各种数据库经验技巧
  2. 博主 发表 2014-11-23 00:00:00 生成Java JDBC访问代码,从SQL文件
  3. xirruiqiang 发表 2018-05-22 13:26:02 脑图大全
  4. 冷乐 发表 2015-06-22 09:59:04 集成Log4Jdbc
  5. 博主 发表 2016-06-23 08:08:09 Tomcat-Jdbc-Pool参数说明
  6. dulong 发表 2018-05-08 14:47:57 Sharding-JDBC 3.0 即将发布,更名 Sharding-Sphere !
  7. root 发表 2015-04-13 03:46:02 JDBC操作数据库
  8. luanhailiang 发表 2016-03-09 11:33:52 java jdbc 将mysql表转换成protobuf
  9. hongjiang 发表 2014-07-15 17:02:40 tomcat关闭应用时的清理工作(1): JDBC Driver的检测和反注册
  10. darida 发表 2018-09-14 19:35:11 原创 Spring boot(SpringMVC)使用mybatis的delete方法返回值
  11. dbafree 发表 2013-04-06 13:20:44 jdbc thin模式-bug 9373370分享
  12. IT江湖 发表 2014-04-17 02:56:01 我们Hacking的JDBC,你想了解?

发表评论