题
我有回报statment问题>。<我想所有的杂志名字存入
ArrayList<String> ListNameMagazine = new ArrayList<String>();
我有DB;在DB有一个表name_magazine
和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
}
这是我的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; //return just_try;
}
问题是在返回语句。
当注释(//)我擦除和最后返回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
解决方案
您的问题是,返回返回的只有一件事,它会的立即返回该函数将退出的!您正在重新调整一本杂志的名称 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;
}
其他提示
可以:你的方法返回一个字符串,而你试图返回一个列表
签名必须改变,以
public List<String> getResult(String sql) throws SQLException;
不隶属于 StackOverflow