使用jdbc的Connection类获得DatabaseMetaData数据库库表,列信息,,之前一直没有注意到jdb
分享于 点击 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的统一接口,如果要获得数据库的库定义,表定义等信息,推荐使用此方法。
用户点评