2016-07-14 2 views
-2

Ich bin JAVA Anfänger. Wie kann man ArrayList-Werte zurückgeben und andere Klassen aufrufen? Ich weiß nicht, was ich tun soll. Das ist mein Code.JAVA, MySQL - Wie ArrayList zurück und rufen Sie

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;    
} 

Ich möchte d_list zurückgeben und verwenden.

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(); 
    } 
} 

aber immer Error-Methode erstellen !! .. Ich weiß nicht, wie DeletCache() Teil zu beheben. Plase mir helfen. Vielen Dank.

Antwort

0

Es ist ein Fehler beim Hinzufügen Ihrer Liste zu Ihrer While-Schleife und anderen Orten aufgetreten.

sollte es als

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

Sie den Zähler brauchen nicht sein.

+0

Es ist kein guter Codestil, um eine Variable in Großbuchstaben zu benennen. Also verwenden Sie besser 'String a' – Blobonat

+0

Richtig. Ich habe den Code einfach kopiert. –