Klassen Problem

  • Themenstarter Themenstarter Gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast

Gast
so Gast hat wieder ein problem 😀

ich habe jetzt 2 Klassen wobei dbver.java auf dbaus.java zugreift.....
in dbver.java hab ich die instanz (connect() ) in dbver.java aufgerufen.
Mein Ziel ist es die Arrays(lines[]) auch in der dbver.java zu verwenden, wie mach ich das...
weil dort muss ich alle zeilen in der datenbank abfragen...
wenn ich system.out.println(".." +lines) eingebe.... sagt er das lines[] keine variable ist, das heißt er greift nicht auf dbaus zu..... code........

Danke für jede Hilfe

Code:
import java.io.*;
import java.util.*;
import java.sql.*;

class dbver { 
        public static void main (String[] args) throws SQLException  { //HIER sagt er mir "invalid method, return type required 
        

            dbaus test = new dbaus();
            System.out.println(test.connect());
            
            
            int i;
       Connection connection = null; 
       Statement  statement = null; 
        
       System.out.println("Verbinde...."); 
        
       try{ 
           Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
            
           connection = DriverManager.getConnection("jdbc:odbc:Omikron_Test","",""); 
           statement = connection.createStatement(); 
            
       } 
      catch (ClassNotFoundException err){ 
          System.err.println("\nDB-Driver nicht gefunden!"); 
          System.err.println(err); 
       } 
       catch(SQLException err){ 
           System.err.println("\nConnect nicht moeglich"); 
           System.err.println(err); 
       } 
        StringBuffer sql = new StringBuffer(256); 
    
        sql.append("SELECT PERSONID, MEDIAADDRESS"); 
        sql.append(" From CONTACTPERSONMEDIA"); 
        
        ResultSet resultSet = statement.executeQuery(sql.toString()); 
        
        while(resultSet.next()){ 
            int PERSONID = resultSet.getInt(1); 
            String MEDIAADDRESS = resultSet.getString(2); 
           // System.out.println(PERSONID+ "," + MEDIAADDRESS); 
            } 
  
        }
    }

Code:
import java.io.*;
import java.util.*;

class dbaus { 
    
  public String[] connect()  {
      String[] lines = null;
        int i ;
    try { 
      BufferedReader in = new BufferedReader(new FileReader("Unsubscribed_170206.txt")); 
      
      
         String line; 
      ArrayList list = new ArrayList(); 
       

      while((line = in.readLine()) != null) 
      { 
         list.add(line); 
      } 
      in.close(); 
      
      lines = (String[]) list.toArray(new String[0]); 
      for (i=0; i<lines.length; i++) {
      
            System.out.println(lines[i]); 
     
          
      
      }

    } 
    catch(FileNotFoundException fnfe) { 
      System.out.println("Datei nicht gefunden!"); 
    } 
    catch(IOException ioe) { 
      System.out.println("Fehler beim Lesen!"); 
       
    } 
       
   return lines;
  
    } 
 
  
     
   }
 
ich hoffe du liest nebenbei noch ein Java Buch....

Code:
 System.out.println(test.connect());
du rufst die methode ja schon auf, die hat einen Rückgabe wert, also speichere ihn einfach
Code:
 String[] lines = test.connect();
nun kannst du mit dem array machen was du willst
 
was soll das denn heissen mit dem Buch 😀

danke... das ist es nämlich was mir fehlt.......woher soll ich wissen wie man Rückgabewerte speichert 😉

thx
 
Naja, ich weiss schon, wie er das mit dem Buch gemeint hat 😉.

Also was du schon wissen solltest, bevor du mit Datenbanken anfängst ist, dass System.out.println() etwas an die Standard-Ausgabe weiterleitet.
 
So ein neues Problem, jetzt hab ich ja dank eurer hilfe den Rückgabe Wert String[] lines..... gespeichert
Jetzt kann ich ihn dbver.java ausgeben... aber wenn ich eingebe system.out.println("test: " +lines)
dann markiert er die Zeile und sagt das er die Variable i nicht kennt. Die Variable i, ist in dbaus definiert(intialis..)
wie kann ich die auch mit rübergeben? code......

Code:
import java.io.*;
import java.util.*;
import java.sql.*;

class dbver { 
        public static void main (String[] args) throws SQLException  { 
                 

            dbaus test = new dbaus();
           
          //  System.out.println("test" +test.list.get(1));
           String[] lines = test.connect();
           
            System.out.println("Test:" +lines[i]);
            
       Connection connection = null; 
       Statement  statement = null; 
        
       System.out.println("Verbinde...."); 
        
       try{ 
           Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
            
           connection = DriverManager.getConnection("jdbc:odbc:Omikron_Test","",""); 
           statement = connection.createStatement(); 
            
       } 
      catch (ClassNotFoundException err){ 
          System.err.println("\nDB-Driver nicht gefunden!"); 
          System.err.println(err); 
       } 
       catch(SQLException err){ 
           System.err.println("\nConnect nicht moeglich"); 
           System.err.println(err); 
       } 
        StringBuffer sql = new StringBuffer(256); 
    
        sql.append("SELECT PERSONID, MEDIAADDRESS"); 
        sql.append(" From CONTACTPERSONMEDIA"); 
        
        ResultSet resultSet = statement.executeQuery(sql.toString()); 
        
        while(resultSet.next()){ 
            int PERSONID = resultSet.getInt(1); 
            String MEDIAADDRESS = resultSet.getString(2); 
           // System.out.println(PERSONID+ "," + MEDIAADDRESS); 
            } 
  
        }
    }

Code:
import java.io.*;
import java.util.*;

class dbaus { 
    
  public String[] connect()  {
      String[] lines = null;
        int i;
  
        try { 
      BufferedReader in = new BufferedReader(new FileReader("Unsubscribed_170206.txt")); 
      
      
      String line; 
      ArrayList list = new ArrayList(); 
       

      while((line = in.readLine()) != null) 
      { 
         list.add(line); 
      } 
      in.close(); 
      
      lines = (String[]) list.toArray(new String[0]); 
      for (i=0; i<lines.length; i++) {
      
         //   System.out.println(lines[i]); 
    
          
      
      }
 //System.out.println("test: " +lines[i]);
    } 
    catch(FileNotFoundException fnfe) { 
      System.out.println("Datei nicht gefunden!"); 
    } 
    catch(IOException ioe) { 
      System.out.println("Fehler beim Lesen!"); 
       
    } 
       
   return lines;
  
   
    } 
 
  
     
   }
 
Ohne unhöflich werden zu wollen:
Ich glaube, du solltest dir ein Buch schnappen, z.B. http://www.galileocomputing.de/openbook/javainsel4/ und anfangen zu lesen. Das soll manchmal helfen!

EDIT: "Anfängerfragen" heißt nicht, dass hier alles vom Urschleim angefangen erklärt wird. Dieses Sachen findest du nämlich in verschiedenen Tutorials und eben Büchern!
 
Ich versteh nicht, warum die Variable i aus der anderen Klasse rüberholen willst. Die nimmst du doch eh nur für die for-Schleife.
Dann leg dir doch ne neue Variable i in dbver an.

Wenn dir das zu kompliziert ist oder du nicht weißt, wie du Variablen anlegst, kopier doch die entsprechenden Stellen einfach aus dbaus nach dbver.
Zur Sicherheit: Das wäre dann Zeile 9 und die Zeilen 26 bis 32!
 
test ist ja - wie in der Deklaration von connect() definiert - ein Array von Strings; wenn Du jetzt das ganze Array zeilenweise ausgeben willst, geht das z.B. mit
Code:
for ( int i=0; (test != null) && (i<test.length); i++) System.out.println( test[i]);

oder (mit Java5):
Code:
for ( String s : lines) System.out.println( s);

Aber wie schon geschrieben wurde: hier wäre ein Grundlagenbuch schon sinnvoll :meld:
 
hmm , die version von tini funktioniert
die von murray weniger....

zu tini...... ich weiß wie man variablen def und int aber wo ich das da gemacht hab, hats nicht funktioniert, da dachte ich, ich muss die rüber holen..... aber wenn du i=0 in der schleife inita.,.. , dann geht das..........

trotzdem danke ihr cracks 😀
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben