首页 > 其他 > 详细

暂时处理

时间:2015-10-08 18:15:09      阅读:168      评论:0      收藏:0      [点我收藏+]
我们当然可以在数据库中用SQL获取,但是那语法我想看过的人都会感觉到头痛.
不过,我们在JDBC中却有个很好的办法.
 首先我们看API中对于DataBaseMetaData类的描述,其中有一个方法是这么描述的

getPrimaryKeys

ResultSet getPrimaryKeys(String catalog, String schema, String table) throws SQLException
检索对给定表的主键列的描述。它们根据 COLUMN_NAME 进行排序。

每个主键列描述都有以下列:

  1. TABLE_CAT String => 表类别(可为 null
  2. TABLE_SCHEM String => 表模式(可为 null
  3. TABLE_NAME String => 表名称
  4. COLUMN_NAME String => 列名称
  5. KEY_SEQ short => 主键中的序列号
  6. PK_NAME String => 主键的名称(可为 null
参数:
  1. catalog - 类别名称,因为存储在数据库中,所以它必须匹配类别名称。该参数为 "" 则检索没有类别的描述,为 null 则表示该类别名称不应用于缩小搜索范围
    schema - 模式名称,因为存储在数据库中,所以它必须匹配模式名称。该参数为 "" 则检索那些没有模式的描述,为 null 则表示该模式名称不应用于缩小搜索范围
    table - 表名称,因为存储在数据库中,所以它必须匹配表名称

这不是正是我们需要的primarykey嘛~哈哈,于是,我们先获取一个DataBaseMetaData对象,如何得到呢? connection = DriverManager.getConnection();

  DataBaseMetaData dbmd = connection.getMetaData()就可以获取了.

通过这个对象    ResultSet rs = dbmd.getPrimaryKey("","",tableName);

        String pk = rs.getString(4)即可得到你的tableName表中的主键是什么了.这里的参数4代表了COLUMN_NAME,注意,我们并没有使用6代表的PK_NAME来作为参数,因为6返回的将是你的主键的描述名.

    需要注意的是,这个ResultSet对象rs并非只包含一条记录,如果主键是复合主键,则会返回多条记录.

暂时处理

原文:http://www.cnblogs.com/yu0312chao/p/4765427.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!