2016-07-14 53 views
-2

我是JAVA初学者。如何返回ArrayList值并调用其他类? 我不知道该怎么做.... 这是我的代码。JAVA,MySQL - 如何ArrayList返回并调用

public ArrayList<String> deleteList(String filename){ 

     Connection conn = null; 
     Statement stmt = null; 
     int i=0; 
     ArrayList<String> d_list = new ArrayList<String>(); 

     try{ 
      conn = getConnection(); 

      System.out.println("Creating statement..."); 
      stmt = conn.createStatement(); 

      String sql; 
      sql = "select f_name,access_time," 
       + "(select count(*) + 1 from c_DB where access_time>c.access_time) as rank " 
       + "from c_db as c having rank >= 8 order by rank"; 

      ResultSet rs = stmt.executeQuery(sql); 

      while(rs.next()){ 

      String A = rs.getString("f_Name"); 
      d_list.add(i,A); 
      i++; 
      } 
      /*for(int j=0;j<d_list.size();j++){ 
       System.out.print("\n" +d_list.get(j)); 
      } */   
      rs.close(); 
      stmt.close(); 
      conn.close(); 
     }catch(SQLException se){ 
      se.printStackTrace(); 
     }catch(Exception e){  
      e.printStackTrace(); 
     } 
     System.out.println("\nDeletelist");   
    return d_list;    
} 

我想返回d_list并使用。

public class CacheManager { 
    public void DeleteCache(){ 

     ArrayList<String> d_name= new ArrayList<String>(); 
     DBManager name =new DBManager(); 
     for(int i=0;i<d_name.size();i++){ 
      d_name.addAll(i,name.deleteList(d_list)); 
     } 
     for(int j=0;j<d_name.size();j++){ 
       System.out.print("\n" +d_name.get(j)); 
      } 

    } 
    public void SendList(){    
    } 

    public static void main(String[] args) 
    { 
     CacheManager c = new CacheManager(); 
     c.DeleteCache(); 
    } 
} 

但总是错误创建方法!! 我不知道如何解决DeletCache()的一部分。 Plase帮助我。谢谢。

回答

0

在您的while循环和其他位置添加到List中时出现错误。

应该为

 while(rs.next()){ 
     String A = rs.getString("f_Name"); 
     d_list.add(A); 
     } 

你不需要在柜台上。

+0

用大写字母命名变量并不是很好的代码风格。所以你最好使用'String a' – Blobonat

+0

正确。我只是复制了代码。 –