Arraylist

kanial

Grünschnabel
Hallo

ich habe eine Class name Datenbank,dass die Daten rausholt.



package tt;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.*;
import java.util.ArrayList;

public class Datenbank {



public static void main( String[] argv )
{

Connection conn = null;
String sDbUrl=null;
String user = "";
String pass = "";






ArrayList<String> list=new ArrayList<String>();
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println( "bitte auswählen" );

BufferedReader in = new BufferedReader(
new InputStreamReader( System.in ) );

sDbUrl = in.readLine();
conn = DriverManager.getConnection(sDbUrl,user, pass);

PreparedStatement pStm = conn.prepareStatement("show Tables");
ResultSet rs = pStm.executeQuery();

while (rs.next())
{
list.add(rs.getString(1));
}
System.out.println(list.size());
for( int i=0; i<list.size(); i++)
{
System.out.println(list.get(i)+":");
pStm = conn.prepareStatement("show columns from " + list.get(i));
rs = pStm.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
DatabaseMetaData meta = conn.getMetaData();
ResultSet ergebniss= meta.getPrimaryKeys(null,null,list.get(i));
ResultSet ergebniss1= meta.getImportedKeys(null,null,list.get(i));
while (ergebniss.next())
{
System.out.println("Primary:" + ergebniss.getString("COLUMN_NAME"));
while (ergebniss1.next()){
System.out.println("Foreign:" + ergebniss1.getString("FKCOLUMN_NAME"));
}
}
while (rs.next())
{
for (int j = 1; j <= rsmd.getColumnCount(); j++)
{

System.out.println(rs.getString(j));
}
}




}
}
catch (Exception e) {
System.err.println("Kann nicht verbinden!");
}
finally {
if (conn != null) {
try {

conn.close();

System.out.println("Verbindung beendet.");

} catch(Exception e) {
}
}
}

}
}




jetzt möchte ich in eine andere Klasse list.size(); benutzen damit ich die anzahl von tabellen habe und davon objekte erzeugen.


wie rufe ich arraylist auf.
 
Hallo

ich habe eine Class name Datenbank,dass die Daten rausholt.



Code:
package tt;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.*;
import java.util.ArrayList;

public class Datenbank {
	
	public static void main( String[] argv )
 {

 Connection conn = null;
String sDbUrl=null; 
String user = "";
	String pass = "";

		
	ArrayList<String> list=new ArrayList<String>();
	try {
		Class.forName("com.mysql.jdbc.Driver");
		System.out.println( "bitte auswählen" );
		
	 BufferedReader in = new BufferedReader(
             new InputStreamReader( System.in ) );
	 
     sDbUrl = in.readLine(); 
    conn = DriverManager.getConnection(sDbUrl,user, pass);
   
	PreparedStatement pStm = conn.prepareStatement("show Tables");
	ResultSet rs = pStm.executeQuery();

	 while (rs.next())
		{
		 list.add(rs.getString(1));
		}
	 System.out.println(list.size());
	 for( int i=0; i<list.size(); i++)
	 {	
		 System.out.println(list.get(i)+":");
		 pStm = conn.prepareStatement("show columns from " + list.get(i));
		 rs = pStm.executeQuery();
		 ResultSetMetaData rsmd = rs.getMetaData(); 
		 DatabaseMetaData meta = conn.getMetaData(); 
		ResultSet ergebniss= meta.getPrimaryKeys(null,null,list.get(i));
		 ResultSet ergebniss1= meta.getImportedKeys(null,null,list.get(i));  
		while (ergebniss.next())
		{
			System.out.println("Primary:" + ergebniss.getString("COLUMN_NAME"));
		 while (ergebniss1.next()){
			 System.out.println("Foreign:" + ergebniss1.getString("FKCOLUMN_NAME"));
		 }
		}
			 while (rs.next())
			{
			for (int j = 1; j <= rsmd.getColumnCount(); j++) 
			 {
				
			 System.out.println(rs.getString(j));
			 }
	 	}
			
	 
	}
	}
catch (Exception e) {
	System.err.println("Kann nicht verbinden!"); 
	}
	finally {
	if (conn != null) {
	try {
		
	conn.close();

	System.out.println("Verbindung beendet."); 

	} catch(Exception e) { 
	}
	}
	}
	
 }
}


jetzt möchte ich in eine andere Klasse list.size(); benutzen damit ich die anzahl von tabellen habe und davon objekte erzeugen.


wie rufe ich arraylist auf.
 
Ok. So wird das nicht funktionieren, da deine ArrayList nur in der Main-Methode existiert, du müsstest sie in der Klasse anlegen.

Ich muss zerix Recht geben, da man eigentlich die Main-Methode nur zum starten des Programms verwendet.

Und um von einer anderen Klasse auf ein Objekt einer anderen zugreifen zu können, benutzt man getter- und setter-Methoden.

Lese das erstmal nach, da das Grundlagen sind und wir sind nicht da um dir eine Schritt für Schritt Anleitung zu geben.
 
Zurück