使用JDBC查询表的主键

最近在做重构数据库表管理工作,今天遇到一个关于[给定表名称]取它的主键并进行其它关联操作.


[java]  view plain  copy
  1. public String[] getTablePK(String tableCodes) throws Exception {   
  2.     String[] resultArray = null;  
  3.     Connection conn = null;  
  4.     DatabaseMetaData dbmd = null;  
  5.     ResultSet rs = null;  
  6.     try {  
  7.         /** 查了下API,ResultSet 会包含五列,分别是: 
  8.           * TABLE_CAT 表目录一般会是NULL 
  9.           * TABLE_SCHEM 表索引,主键所在表的架构,通常会设置为dbmd.getUserName() 
  10.           * TABLE_NAME 包含主键的表名称 
  11.           * COLUMN_NAME 主键名称 
  12.           * KEY_SEQ 主键序列 
  13.           * PK_NAME 约束名称 
  14.           */  
  15.         conn = dataSource.getConnection();  
  16.         dbmd = conn.getMetaData();  
  17.         rs   = dbms.getPrimaryKeys(nullnull, tableCodes);  
  18.         String tempPK = "";  
  19.         while (rs.next())  {  
  20.            tempPK = rs.getString("COLUMN_NAME") + ",";  
  21.         }  
  22.         resultArray = tempPK.split(",");  
  23.         if (tempPK.length() < 1) {  
  24.           resultArray = null;  
  25.         }  
  26.     } catch(SQLException sqle) {  
  27.        logger.error(sqle);  
  28.     } finally {  
  29.        if (rs != null) {  
  30.           try{  
  31.             rs.close();  
  32.           } catch(SQLException sqle) {  
  33.             logger.error(sqle);  
  34.           }  
  35.        }  
  36.        if (conn != null) {  
  37.           try {  
  38.           } catch(SQLException sqle) {  
  39.             logger.error(sqle);  
  40.           }  
  41.        }  
  42.     }  
  43.     return resultArray;  
  44.  }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值