当前位置: 首页 > 面试题库 >

如何通过jdbc获取主键的列名

江航
2023-03-14
问题内容

我的代码如下:

DatabaseMetaData dmd = connection.getMetaData();
ResultSet rs = dmd.getPrimaryKeys(null, null, tableName);

while(rs.next()){
    primaryKey = rs.getString("COLUMN_NAME");
}

rs rs.next()总是返回时不是null false,有人对此有想法吗?谢谢。


问题答案:
  1. 元数据接口实现由驱动程序供应商实现。某些驱动程序和某些数据库可能不支持它。这是来自Javadoc的文本:一些DatabaseMetaData方法以ResultSet对象的形式返回信息列表。常规的ResultSet方法(例如getString和getInt)可用于从这些ResultSet对象检索数据。如果给定形式的元数据不可用,将返回一个空的ResultSet。

  2. 表名称在oracle中区分大小写

  3. 或尝试以下方法

        DatabaseMetaData dm = conn.getMetaData();
    ResultSet rs = dm.getExportedKeys(“”,“”,“ table1”);
    while(rs.next()) 
    {    
      字符串pkey = rs.getString(“ PKCOLUMN_NAME”);
      System.out.println(“ primary key =” + pkey);
    }

您还可以使用getCrossReference或getImportedKeys检索主键



 类似资料:
  • 问题内容: 给定一个表名,如何从plpgsql函数中提取主键列及其数据类型的列表? 问题答案: 上面的查询非常糟糕,因为它确实很慢。 我会推荐这个正式版本: http://wiki.postgresql.org/wiki/Retrieve_primary_key_columns 如果需要模式,查询如下

  • 问题内容: 有没有办法从mysql-database获取主键字段的名称?例如: 我有一张这样的桌子: 其中字段ID是主键(它具有自动递增功能,但我不能使用它)。如何在php中检索字段名称“ id”? 问题答案: 一种更好的方法是使用,因为您并不总是可以访问information_schema。以下作品: Column_name将包含主键的名称。

  • 表的复合键是symbol和“datetime”(它只是一个时间戳)。这两列在dynamodb中都设置为字符串。 我收到的错误是:提供的键元素与模式不匹配

  • 我有一个由3个表组成数据库,每个表指示一个用户,如下所示: > Staff表“user 2”。 null 我想在它们之间实现一个名为'post'的公用表,其中每个用户都可以将内容发布到post表的content列,但是我需要标识海报的类型'the one who post the post‘,因此我将向post表添加一列user_type.user_type列应该保存用户的ID'Admin,Sta

  • 以下实体: JPQL查询: Hibernate生成正确的sql查询,但当它尝试收集数据时,它会进行额外的调用,例如: 我检查了查询返回null。如何避免此类数据库查询? 我的调查:据我所知,Hibernate创建key by(AA1.a_number和AA1.category)并尝试从上下文中检索实体。对于特定的行“left join”,查询返回空值,Hibernate按键询问上下文,而上下文返回

  • 问题内容: 我从字符串定义一个新的gson对象: 此处的字符串示例:http : //api.soundrop.fm/spaces/XJTt3mXTOZpvgmOc 然后尝试返回一个值: 最后用: 但是我得到一个错误: 完整班:主班:http : //pastebin.com/v4LrZm6k 无线电班:http : //pastebin.com/2BWwb6eD 问题答案: 这是Java。字段根