最近在做重构数据库表管理工作,今天遇到一个关于[给定表名称]取它的主键并进行其它关联操作. public String[] getTablePK(String tableCodes) throws Exception { String[] resultArray = null; Connection conn = null; DatabaseMetaData dbmd = null; ResultSet rs = null; try { /** 查了下API,ResultSet 会包含五列,分别是: * TABLE_CAT 表目录一般会是NULL * TABLE_SCHEM 表索引,主键所在表的架构,通常会设置为dbmd.getUserName() * TABLE_NAME 包含主键的表名称 * COLUMN_NAME 主键名称 * KEY_SEQ 主键序列 * PK_NAME 约束名称 */ conn = dataSource.getConnection(); dbmd = conn.getMetaData(); rs = dbms.getPrimaryKeys(null, null, tableCodes); String tempPK = ""; while (rs.next()) { tempPK = rs.getString("COLUMN_NAME") + ","; } resultArray = tempPK.split(","); if (tempPK.length() < 1) { resultArray = null; } } catch(SQLException sqle) { logger.error(sqle); } finally { if (rs != null) { try{ rs.close(); } catch(SQLException sqle) { logger.error(sqle); } } if (conn != null) { try { } catch(SQLException sqle) { logger.error(sqle); } } } return resultArray; }