返回语句的java问题
我对退货有问题>&书信电报;我想把所有杂志的名字都存储到
ArrayList<String> ListNameMagazine = new ArrayList<String>();
我有一个DB;数据库中有一个表name_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;
}
问题在返回语句中
当注释(//)被我删除,最后一个返回空值时;我删除。它变成这样:
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
# 1 楼答案
您的问题是return只返回一件事,它将立即返回,函数将退出!您正在重新调整一本杂志的名称,请尝试一下
因此,您开始在rs中迭代,并得到名称:
然后你告诉代码返回只要你试试
此时将返回just_try,函数将退出!我认为您的问题在于,您希望函数继续运行,并不断向调用它的代码返回值,但这不是它的工作方式
我怀疑你想做的是这样的:
然后在函数getResult中:
# 2 楼答案
xan:当您尝试返回列表时,您的方法返回一个字符串
签名必须更改为