【发布时间】:2017-04-24 14:19:52
【问题描述】:
对于我的项目,我尝试使用数据库元数据对象表单 jdbc 获取表中的所有外键,但是当我执行以下代码时,即使我的表包含外键,结果集也始终为空?
ResultSet v_resultPrimaryKey = p_metadata.getImportedKeys(null, Tools.getDBName(), "bookmarks_tags");
if (v_resultPrimaryKey.next()) {
System.out.println("test");
v_resultPrimaryKey.beforeFirst();
v_resultPrimaryKey.beforeFirst();
while (v_resultPrimaryKey.next()) {
if (p_att.equals(v_resultPrimaryKey.getString("FKCOLUMN_NAME"))) {
v_fk = v_resultPrimaryKey.getString("PKTABLE_NAME") + "."
+ v_resultPrimaryKey.getString("PKCOLUMN_NAME");
v_fkName = v_resultPrimaryKey.getString("FK_NAME");
}
}
if(!v_fk.equals("")){
v_foreignKey = new ForeignKey(v_fkName, v_fk);
}
}
【问题讨论】:
-
哪个数据库和哪个驱动+版本?另外,如果您的数据库以大写形式存储未加引号的表名,请尝试使用
"BOOKMARKS_TAGS"作为表名,并使用null作为架构名称 -
sgbd : mysql 驱动程序 : mysql 的 lat jdbc 驱动程序,我已经尝试使用 null 作为架构名称,我将在明天恢复工作时尝试大写
-
"sgbd : mysql driver : the lat jdbc driver for mysql"
标签: java database jdbc foreign-keys database-metadata