gpt4 book ai didi

java - 将元素存储到 ArrayList 但会出现冗余?

转载 作者:行者123 更新时间:2023-12-01 14:16:25 24 4
gpt4 key购买 nike

我编辑了问题:我试图将数据库所有表的外键存储在数组列表 Fkey 中。我有 getFK 方法来检索现有表的外键(如果存在)

public ArrayList Fkeys = new ArrayList();
public ArrayList Vec = new ArrayList();

public ArrayList getFK () {
try {

/* Database connection */

DBConnection connect = new DBConnection();
connect.DBConnect();
Connection con = connect.con;
/* Getting some infos regarding keys*/
DatabaseMetaData metadata = con.getMetaData();
ResultSet clefs = metadata.getImportedKeys(null, null, "persons");

while(clefs.next()) {
Vec.add(clefs.getString("FKCOLUMN_NAME"));
}
Fkeys.add(Vec);


clefs = metadata.getImportedKeys(null, null, "departments");

while(clefs.next()) {
Vec.add(clefs.getString("FKCOLUMN_NAME"));
}
Fkeys.add(Vec);
}

现在,当我执行此操作时,我得到以下结果:[[ ], [ ]] 因为两个表 person 和 Departments 没有外键。但是当我将这些行添加到有关具有 3 个外键的学生表的方法中时

clefs = metadata.getImportedKeys(null, null, "students");

while(clefs.next()) {
Vec.add(clefs.getString("FKCOLUMN_NAME"));
}
Fkeys.add(Vec);

我得到这个结果:[[id, 人, 德普], [id, 人, 德普], [id, 人, 德普]]虽然它应该是:[[id、人物、德普]、[ ]、[ ]]我做错了什么?为什么Vec的内容存储在Fkey的所有位置?

最佳答案

这个循环似乎每次都会向alist添加相同的内容...

    while(keys.next()) {
alist.add(clefs.getString("FKCOLUMN_NAME"));
}

我不能确定这就是问题所在(因为你没有告诉我们clefs是什么!)...但它对我来说看起来非常可疑。

关于java - 将元素存储到 ArrayList 但会出现冗余?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18070420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com