我爱Aspx >> C#.Net >> 查找数据表的主键大多数数据库有许多主键,但是在一个表中不允许两条记录的同一个主键具有相同的值。可以使用Java Database Connectivity(JDBC)来判断一个数据表的主键。
JDBC具有强大的元数据处理能力。java.sql.Connection类和java.sql.ResultSet类可以通过调用其getMetaData方法进行反射,例如:
// 对java.sql中所有的类
Connection connection = .....DatabaseMetaData _
dbMeta = connection.getMetaData();
ResultSet rset = .....ResultSetMetaData _
rsMeta = rset.getMetaData();
java.sql.DatabaseMetaData类包含一个查找数据表主键的方法。你需要知道表的名字,catalog名和schema名。如果不知道catalog和schema,那么你可以不使用它们而输入“null”。例如:
// 查找一个名字为“Comment”的表的主键
// 没有catalog或schema,都设置为null
ResultSet pkRSet = dbMeta.getPrimaryKeys(null, null, "Comment");
while( pkRSet.next() ) {
System.err.println("****** Comment ******");
System.err.println("TABLE_CAT : "+pkRSet.getObject(1));
System.err.println("TABLE_SCHEM: "+pkRSet.getObject(2));
System.err.println("TABLE_NAME : "+pkRSet.getObject(3));
System.err.println("COLUMN_NAME: "+pkRSet.getObject(4));
System.err.println("KEY_SEQ : "+pkRSet.getObject(5));
System.err.println("PK_NAME : "+pkRSet.getObject(6));
System.err.println("****** ******* ******");
}
在这个例子中表“Comment”具有一个叫做“comment_id”的主键。
下面是上面这些代码在MySQL上的输出:
****** Comment ******
TABLE_CAT :
TABLE_SCHEM:
TABLE_NAME : Comment
COLUMN_NAME: column_id
KEY_SEQ : 1
PK_NAME : column_id
****** ******* ******
存在PK_NAME的原因是有时会为一个主键使用列名之外的名字。而KEY_SEQ表示了主键的顺序位置。有些使用字母顺序保存主键的数据库会为KEY_SEQ返回0。
当创建通用的数据库应用时,查找一个表的主键是很基本的。JDBC的MetaData类提供了所需的数据库反射机制,从而使得这些应用的实现成为可能。
上一篇: 用SQLJ开发数据库
下一篇: 以IP与Port建立与SQLSERVER的连接
Ҷƪл˵?
SQL的基本操作(1.数据类型)[05-12]
Java访问数据库的速度瓶颈问题的..[05-12]
数据库中数据项变化不定,如何设..[05-12]
应用数据库的唯一性约束并在asp中..[05-12]
学会如何处理数据库中的null[05-12]
ASP讲座之二:读取通过表单发送的..[05-12]
Java连接数据库谈[05-12]
一个简单实用的数据库操作框架[05-12]
ADO数据访问一点通[05-12]
访问数据库(6)[05-12]
如何在域控制器上安装asp.net?[05-12]
用文本+ASP打造新闻发布系统/图片..[05-12]
URL欺骗[05-12]
得到远程机器MAC地址源代码[05-12]
SQL的基本操作(1.数据类型)[05-12]
CGI教程(10)CGI 规范之二[05-12]
PHP脚本的8个技巧(6)[05-12]
接收键盘的输入并原样输出到屏幕..[05-12]
深入理解ASP中FSO的神奇功能[05-12]
VC中分割窗口后如何限制分割条移..[05-12]