急急急!!!通过ResultSetMetaData如何获得外键所在的表以及表中所对应字段?
我已经在oracle中设置了外键约束,但是ResultSetMetaData.getTableName为空字符串,而且ResultSetMetaData中找不到获得表中所对应字段的方法,请教高手,急急急!!!oracle自带的包中有解决该问题的相关方法么? 问题点数:0、回复次数:2Top
1 楼wunglee(寂寞让我如此努力)回复于 2003-08-02 15:08:19 得分 0
现在我用databaseMetaData.getImportedKeys(catalog,schema,tableName)获取,由于不理解catalog和schema,就都传入null,得到的结果集为空,求助!!!Top
2 楼luckyfanjian(luckyfan)回复于 2003-08-02 15:23:48 得分 0
给你一个例子:不过方法不全
package metadata;
import java.sql.*;
import java.util.*;
import connections.*;
public class GetResultSetMetaDataOne {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rset = null;
try {
conn = ConnectionFactory.getConnection();
stmt = conn.createStatement();
String sql =
"select artistid, artistname, artistimagefilespec, artistbiotext from artistsandperformers";
rset = stmt.executeQuery(sql);
ResultSetMetaData rsmd = rset.getMetaData();
int cols = rsmd.getColumnCount();
for (int i = 1; i <= cols; i++) {
System.out.println("Column " + i);
System.out.println("Name: " + rsmd.getColumnName(i));
System.out.println("Table Name: " + rsmd.getTableName(i));
System.out.println("Schema Name: " + rsmd.getSchemaName(i));
System.out.println("Class: " + rsmd.getColumnClassName(i));
System.out.println("Type: " + rsmd.getColumnType(i));
System.out.println("Type name: " + rsmd.getColumnTypeName(i));
System.out.println("Auto increment: " + rsmd.isAutoIncrement(i));
System.out.print("Is nullable: ");
switch (rsmd.isNullable(i)) {
case ResultSetMetaData.columnNoNulls:
System.out.println("No Nulls");
break;
case ResultSetMetaData.columnNullable:
System.out.println("Nullable");
break;
case ResultSetMetaData.columnNullableUnknown:
System.out.println("Unknown");
break;
}
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
}
finally {
ConnectionFactory.close(rset);
ConnectionFactory.close(stmt);
ConnectionFactory.close(conn);
}
}
}Top




