# Java MySQL Query ausgeben



## beingJohnM (23. Nov 2010)

Hallo Community,

mache gerade ein Praktikum zum Fachinformatiker und lerne jetzt gerade Java.

Hab den Auftrag bekommen, mit einem Java Programm auf eine lokale Mysql tabelle zuzugreifen und daten auszulesen.

Ich bin jetzt soweit das ich eine Connection zu der Datenbank aufgebaut habe. Mein Problem ist jetzt nur das ich jetzt gerne die komplette tabelle automatisch auslesen will. Aber weis leider nicht wie ich das anstellen soll, hab in google schon gesucht und auch hier im forum. Ich weis das es mit einer Schleife geht, aber wie genau, das versteh ich nicht.

Hier der Code, wie er bis jetzt aussieht:


```
package mysqlabfrage;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class TestConnection
{
	public static void main(String[] args)
	{
			try
				{
				//Treiber laden
				Class.forName("com.mysql.jdbc.Driver").newInstance(); 
				
				}
			catch (Exception ex)
				{
				}
			System.out.println("Treiber geladen");
		
		Connection conn = null;
		
			try
				{
				//Verbindung benutzen
				conn = (Connection)DriverManager.getConnection("jdbc:mysql://localhost/test?user=root&password=");
				
				}
			catch (SQLException ex)
				{
			
				}
			System.out.println("Verbindung steht");
			
			Statement stmt = null;
			ResultSet rs = null;
			
			try
			{
				stmt = conn.createStatement();
				rs = stmt.executeQuery(" SELECT * FROM rechnungsposten ");
				
			
				
			}
			catch (SQLException ex)
			{
				
			}
			
			}
	}
```

hoffe ihr könnt mir helfen.

grüße


----------



## Michael... (23. Nov 2010)

Man kann ein ResultSet nach den MetaDaten fragen.
Oder geht's nur um das Auslesen des ResultSets.
Zu beiden Sachen sollte man mit Google bzw. hier im Forum unzählige Codebeispiele finden.

Ansonsten: Pflicht für Anfänger und Fortgeschrittene:
Java Platform SE 6


----------



## XHelp (23. Nov 2010)

Du könntest sowas wie:

```
ResultSetMetaData rsMetaData = rs.getMetaData();
int columnCount = rsMetaData.getColumnCount();
while(rs.next()) {
  for( i=1 ; i<=columnCount ; i++ ) {
    System.out.print(rs.getString(i) + "\t" ) ; 
  }
  System.out.println() ; 
}
```
machen.


----------



## Gast2 (23. Nov 2010)

Siehe z.B. hier: http://www.java-forum.org/hausaufgaben/108309-inventarverwaltung.html


----------



## beingJohnM (24. Nov 2010)

so hab es geschafft:


```
package mysqlabfrage;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.mysql.jdbc.ResultSetMetaData;


public class TestConnection4
{
	public static void main(String[] args)
	{
		//mysql pfad, user, password
		String mysqlurl = "jdbc:mysql://localhost/test";
		String user = "root";
		String password = "";
		
		//Connection, Statement, ResultSet, ResultMetaData
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		ResultSetMetaData rsmd = null;
		
		try
		{
			//JDBC Treiber laden
			Class.forName("com.mysql.jdbc.Driver");
			System.out.println("JDBC Treiber geladen");
		}
		catch (Exception ex)
		{
			System.err.println("Fehler beim Treiber laden");
		}
		try
		{
			//Verbindung zu mysql Datenbank herstellen
			conn = DriverManager.getConnection(mysqlurl, user, password);
			System.out.println("Verbindung zu mysql hergestellt");
		}
		catch (SQLException ex)
		{
			System.err.println("Verbindung konnte nicht hergestellt werden");
		}
		try
		{
			//Statement erstellen und Query ausführen
			stmt = conn.createStatement();
			rs = stmt.executeQuery("SELECT * FROM rechnungsposten");
			//Inhalt des Query in ResultSetMetaData speichern
			rsmd = (ResultSetMetaData) rs.getMetaData();
			//Inhalt aus ResultSetMetaData in die Variable Columns speichern und ausgeben
			int Columns = rsmd.getColumnCount();
			
			System.out.println(Columns);
			
			//Schleife 1 gibt die SpaltenNamen aus
			for ( int i = 1; i <= Columns; i++)
			{
				String name = rsmd.getColumnName(i);
				System.out.print(name+" ");
			}
			
			System.out.println();
			
			//Schleife 2 und 3 gibt den Inhalt der Tabelle aus
			while (rs.next())
			{
				System.out.println();
			
				for ( int i = 1; i <= Columns; i++)
				{
					System.out.print(rs.getString(i)+" , ");
				}
			}
		}
		catch (SQLException ex)
		{
			System.err.println("Fehler");
		}
	}
}
```


----------

