Java 返回语句的问题
我对return Station>有问题<我想将所有杂志名称存储到Java 返回语句的问题,java,methods,return,Java,Methods,Return,我对return Station>有问题
ArrayList<String> ListNameMagazine = new ArrayList<String>();
这是我的回报声明:
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;
}
问题在返回语句中
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 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你们的问题是返回只返回一个东西,它会立即返回,函数将退出!您正在重新调整一本杂志的名称,请尝试一下
while (rs.next()) {
//System.out.println("Result:"+rs.getString(1));
just_try = rs.getString(1);
return just_try;
}
因此,您开始在rs中迭代,并得到名称:
just_try = rs.getString(1);
然后你告诉代码返回只要你试试
return just_try;
此时将返回just_try,函数将退出!我认为您的问题在于,您希望函数继续运行,并不断向调用它的代码返回值,但这不是它的工作方式
我怀疑你想做的是这样的:
ArrayList<String> ListNameMagazine;
ListNameMagazine = Show.getResult("Select Name_Magazine from Magazine");
ArrayList ListNameMagazine;
ListNameMagazine=Show.getResult(“从杂志中选择杂志名称”);
然后在函数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;
}
公共ArrayList getResult(字符串sql)抛出SQLException{
结果集rs=st.executeQuery(sql);
ResultSetMetaData ResultSetMetaData=rs.getMetaData();
ArrayList returnArrayList=新建ArrayList();
while(rs.next()){
returnArrayList.add(rs.getString(1));
}
返回数组列表;
}
xan:当您尝试返回列表时,您的方法返回一个字符串 签名必须更改为
public List<String> getResult(String sql) throws SQLException;
公共列表getResult(字符串sql)抛出SQLException;
not List but ArrayList public ArrayList getResult(String sql)抛出SQLException^^thxNo,它应该是List。谢谢大家-我工作有点忙,从问题中复制签名时忘了更新签名。干杯您应该返回列表;实现并不重要,您可能希望在以后更改它(如果您决定使用更合适的列表实现)。在这种情况下,您所要保证的是,您可以将其视为一个列表,因此可以对接口进行编码。没有问题。请仔细检查,因为我在方法名称中犯了一个错误(返回类型仍然是字符串,我忘记了更改)。请有足够代表性的人或ferdinand自己更正代码段上的缩进,以便其他人更容易阅读?(在任何要进行代码格式化的行前面应该有4个空格,任何选项卡都应该有4个空格)@xan-done。费迪南德:除了代码级的问题,我还担心数据库的设计。你应该仔细阅读规范化。拥有Magazine1..Magazine4列是否是良好的数据库设计,这一点还很不清楚。