gpt4 book ai didi

java - 从数据库检索值并将其返回给调用方法

转载 作者:太空宇宙 更新时间:2023-11-04 10:42:45 25 4
gpt4 key购买 nike

我正在从数据库中检索数据,并希望将其以 Map 的形式返回给调用函数。

但我在这里面临的问题是 form_dtl 数组中的值被最后一个值覆盖。

数据库结构如下:-

base_mainid  form_id               form_link                           form_name

1 1 .//*[@id='collapse-text-dynamic-form-number WC1
1 2 .//*[@id='collapse-text-dynamic-form-number WC3
1 3 .//*[@id='collapse-text-dynamic-form-number WC6
1 4 .//*[@id='collapse-text-dynamic-form-number WC15

如何解决这个问题?

public static Map formXPath(int formid)
{
int form_id = -1;
Statement s3 = null;
String[] form_dtl = new String[2];
try {
s3 = con.createStatement();

String query = "SELECT form_id,form_link,form_name FROM form_details where base_mainid = " + formid;

ResultSet rs2 = s3.executeQuery(query);
while (rs2.next()) {

form_id = rs2.getInt(1);
form_dtl[0] = rs2.getString(2);
form_dtl[1] = rs2.getString(3);


// System.out.println("ID : "+formid+" Name : "+form_dtl[2]);
form.put(form_id, form_dtl);

}
return form;

最佳答案

尝试这种方式,在循环内实例化您的 form_dtl 数组,以便在每次迭代时都有一个新数组。如果不是,您总是使用相同的值,并且这些值会被覆盖。

public static Map<Integer, String[]> formXPath(int formid) {
Map<Integer, String[]> form = new HashMap<>();
int form_id = -1;
Statement s3 = null;
String[] form_dtl;
try {
s3 = con.createStatement();

String query = "SELECT form_id,form_link,form_name FROM form_details where base_mainid = " + formid;

ResultSet rs2 = s3.executeQuery(query);
while (rs2.next()) {
// instanciate here
form_dtl = new String[2];

form_id = rs2.getInt(1);
form_dtl[0] = rs2.getString(2);
form_dtl[1] = rs2.getString(3);
form.put(form_id, form_dtl);
}

} catch(Exception e) { /* Handle exception here */ }

return form;
}

关于java - 从数据库检索值并将其返回给调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48766005/

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