[mysql] 给定数据库表名,查主键字段名

[mysql] 给定数据库表名,查主键字段名

写了一个从数据库表映射到实体的工具配合easyDBO使用,需要知道指定表的主键,这个方法可以得到主键字段名:(数据库MySQL5)

(只适用于单主键,不适用联合主键)

     public   static  String getDBTableKeyField(String tableName)
    
{
        
try
        
{
            
//用“show  INDEX from tableName” 语句也能得到一系列的键
            Connection conn = EasyJDBEngine.getInstance().getConnection();//这里用你自己的数据库连接
            DatabaseMetaData meta = conn.getMetaData();
            ResultSet rs 
= meta.getIndexInfo(nullnull, tableName, falsefalse);
            
while(rs.next())
            
{
                
//如果是非主键,rs.getString("COLUMN_NAME")与rs.getString("INDEX_NAME")相同
                if(rs.getString("INDEX_NAME").equalsIgnoreCase("PRIMARY"&& !rs.getString("COLUMN_NAME").equalsIgnoreCase(rs.getString("INDEX_NAME"))){
                    
return rs.getString("COLUMN_NAME");
                }

            }

            rs.close();
            conn.close();
        }

        
catch(SQLException e)
        
{
            e.printStackTrace();
        }

        
return null;
    }


你可能感兴趣的:([mysql] 给定数据库表名,查主键字段名)