欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

使用jdbc的Connection类获得DatabaseMetaData数据库库表,列信息,,之前一直没有注意到jdb

来源: javaer 分享于  点击 532 次 点评:162

使用jdbc的Connection类获得DatabaseMetaData数据库库表,列信息,,之前一直没有注意到jdb


之前一直没有注意到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的统一接口,如果要获得数据库的库定义,表定义等信息,推荐使用此方法。

相关栏目:

用户点评