【发布时间】:2014-03-04 12:58:40
【问题描述】:
这里的第一个问题,完整的新手,所以尽量放轻松。我试图找出这里出了什么问题:
public List<String[]> idOnlyQuery(String searchTerm, Connection conn){
List<String[]> result = new ArrayList<String[]>();
String[] rowResult = new String[7];
Statement stmt = null;
try {
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery( "SELECT * FROM Jets WHERE CurrentID LIKE '" + searchTerm + "%'");
while(rs.next()){
String currentId= rs.getString("CurrentId");
String manufacturer = rs.getString("Constructor");
String type = rs.getString("ACType");
String series = rs.getString("Series");
String index = rs.getString("KeyNo");
String operator = rs.getString("Operator");
String baseAirport = rs.getString("Home_Airfield");
rowResult[0] = (currentId);
rowResult[1] = (manufacturer);
rowResult[2] = (type);
rowResult[3] = (series);
rowResult[4] = (operator);
rowResult[5] = (baseAirport);
rowResult[6]= (index);
result.add(rowResult);
}
System.out.println(result.get(0)[0]);
此方法返回一个字符串数组列表,这些数组是从 SQLite 数据库中检索的。除了我的结果 List 中的字符串数组似乎在每次 while 循环重复时被覆盖之外,一切都有效。最后一个println 总是给我从数据库中检索到的最后一行的currentId,但是如果我在while 循环中放置println,它会在每个while 循环中返回适当的数据。我真的不知道我的String[] 元素在哪里被覆盖。这可能真的很明显,但我花了几个小时在网上查看我是否正确地执行了添加过程,但仍然没有乐趣。帮助!
【问题讨论】:
-
@Batty 你先生,太棒了,它有效!如果您不介意对此进行扩展,那为什么需要这条线?
-
这是必要的,因为你需要在写入信息之前初始化一个新数组。您只需覆盖当前数组而不进行初始化。
-
谢谢大家!现在有道理了!我有很多东西要学……你们都让我头疼不已!谢谢!
-
接受一个答案然后;)