gpt4 book ai didi

java - return 语句有问题

转载 作者:行者123 更新时间:2023-12-02 12:14:58 27 4
gpt4 key购买 nike

我的返回声明有问题>.<我想将所有杂志名称存储到

ArrayList<String> ListNameMagazine = new ArrayList<String>();

我有一个数据库;在数据库中有一个表name_magazinename_magazine中的数据是

Magazine1

Magazine2

Magazine3

Magazine4

这是我的主要:

    ShowData Show = new ShowData();

int HowManyMagazine = Show.HowManyMagazine(1); // to make sure there is how many Magazine name in my database

//System.out.print(HowManyMagazine); //i want to make sure the data is out.

String nmeMagazine = null; // this variable for get data from return statement

// i want to store in ListNameMagazine
ArrayList<String> ListNameMagazine = new ArrayList<String>();

for (int numbeer = 0;numbeer <= HowManyMagazine ; numbeer++)
{
//Store in 1 variable String, because if arrayList it's error
nmeMagazine = Show.getResult("Select Name_Magazine from Magazine");
// Store again in array list
ListNameMagazine.add(nmeMagazine);
}

for (String s : ListNameMagazine)
{
System.out.println(s); // show the data
}

这是我的返回声明:

public String getResult(String sql)
throws SQLException
{
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData resultsetmetadata = rs.getMetaData();

//String just_try = null;
while (rs.next()) {
System.out.println("Result:"+rs.getString(1));
//just_try = rs.getString(1);
//return just_try;
}
return null; //return just_try;
}

问题出在 return 语句中。

当注释(//)我删除并且最后返回null;我删除。就变成这样了:

public String getResult(String sql)
throws SQLException
{
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData resultsetmetadata = rs.getMetaData();
String just_try = null;

while (rs.next()) {
//System.out.println("Result:"+rs.getString(1));
just_try = rs.getString(1);
return just_try;
}

return just_try;
}

当我使用此语句显示数据时。

for (String s : ListNameMagazine)
{
System.out.println(s); // show the data
}

仅结果

Magazine4

Magazine4

Magazine4

Magazine4

@.@我不知道@.@小姐在哪里

但是当我像这样在 return 语句中显示数据时

public String getResult(String sql)
throws SQLException
{
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData resultsetmetadata = rs.getMetaData();
String just_try = null;

while (rs.next()) {
System.out.println("Result:"+rs.getString(1));
//just_try = rs.getString(1);
//return just_try;
}

return null;
}

数据显示了我想要的。我知道我只是想念某个地方,但我不知道那个@.@在哪里。我希望你们能找到它。THX

最佳答案

你的问题是return只返回一个东西,并且它会立即返回并且函数将退出!您正在重新调整一本杂志的名称just_try

while (rs.next()) { 

//System.out.println("Result:"+rs.getString(1));

just_try = rs.getString(1);

return just_try;

}

因此,您开始迭代 rs,然后得到名称:

just_try = rs.getString(1);

然后你告诉代码返回 just_try。

return just_try;

此时just_try将被返回并且函数将退出!我认为你的问题是你期望函数继续运行,并继续向调用它的代码返回值,但这不是它的工作方式。

我怀疑你想做的是这样的:

ArrayList<String> ListNameMagazine;
ListNameMagazine = Show.getResult("Select Name_Magazine from Magazine");

然后在函数getResult中:

public ArrayList<String> getResult(String sql) throws SQLException {

ResultSet rs = st.executeQuery(sql);

ResultSetMetaData resultsetmetadata = rs.getMetaData();

ArrayList<String> returnArrayList = new ArrayList<String>();

while (rs.next()) {

returnArrayList.add(rs.getString(1));

}
return returnArrayList;

}

关于java - return 语句有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/328747/

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