暂时处理
2015-10-08 17:17
134 查看
我们当然可以在数据库中用SQL获取,但是那语法我想看过的人都会感觉到头痛.
不过,我们在JDBC中却有个很好的办法.
首先我们看API中对于DataBaseMetaData类的描述,其中有一个方法是这么描述的
检索对给定表的主键列的描述。它们根据 COLUMN_NAME 进行排序。
每个主键列描述都有以下列:
TABLE_CAT String => 表类别(可为
TABLE_SCHEM String => 表模式(可为
TABLE_NAME String => 表名称
COLUMN_NAME String => 列名称
KEY_SEQ short => 主键中的序列号
PK_NAME String => 主键的名称(可为
参数:
这不是正是我们需要的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并非只包含一条记录,如果主键是复合主键,则会返回多条记录.
不过,我们在JDBC中却有个很好的办法.
首先我们看API中对于DataBaseMetaData类的描述,其中有一个方法是这么描述的
getPrimaryKeys
ResultSet getPrimaryKeys(String catalog, String schema, String table) throws SQLException
检索对给定表的主键列的描述。它们根据 COLUMN_NAME 进行排序。
每个主键列描述都有以下列:
TABLE_CAT String => 表类别(可为
null)
TABLE_SCHEM String => 表模式(可为
null)
TABLE_NAME String => 表名称
COLUMN_NAME String => 列名称
KEY_SEQ short => 主键中的序列号
PK_NAME String => 主键的名称(可为
null)
参数:
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并非只包含一条记录,如果主键是复合主键,则会返回多条记录.
相关文章推荐
- Python的执行过程
- proguard Missing type parameter
- C++日期时间与字符串间的转换
- leetcode题目:Word Pattern (Javascript版)
- Linux 常用名利总结
- SSH-KeyGen 的用法
- poj_3259 负权和环
- tcpcopy 实践-引流到lvs(full-nat)
- jquery应用 php和html交互
- 详解zabbix安装部署(Server端篇)
- SQL优化案例-1
- finereport 详细设计
- struts2的bean标签和set标签
- jQuery ajax loading
- LeetCode273 Integer to English Words
- 并行与TBB
- iptables的interface更新
- iOS 降级
- 通过常规气象观测数据计算净辐射Rs示意图
- UML实践(1)--类图