随笔-35  评论-97  文章-0  trackbacks-0

写了一个从数据库表映射到实体的工具配合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;
    }
posted on 2007-06-25 17:52 三告习习 阅读(1691) 评论(0)  编辑  收藏 所属分类: database

只有注册用户登录后才能发表评论。


网站导航: