# Datenbank Neuling



## EclipseUser (15. Jan 2009)

Guten Abend

Ich hoffe ich finde hier die Hilfe die ich suche.

Also ich habe vor ein paar tagen angefangen mich in die Datenbankanbindung mit Java einzuarbeiten

Jedoch bin ich nicht so der beste Programmierer und hoffe daher, dass mir hier vielleicht ein paar helfen.

Ich benutze Eclipse SDK Version 3.2.1 und dazu eine Access Datenbank mit dem namen "datenbankanbindung.mdb" in der Datenbank ist die Tabelle "Namen" mit den Spalten "Nachname" und "Vorname"

Also soweit zu dem was ich schon geschafft habe 


```
import java.sql.*;

public class Datenbank {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception{
		// TODO Auto-generated method stub
		
	    Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
	    Connection verbindung = DriverManager.getConnection( "jdbc:odbc:Datenbank" );
	    
	    try
	    { 
	    	DatabaseMetaData metadaten = verbindung.getMetaData();
	    	System.out.println( "ProduktnameDatabase: " + metadaten.getDatabaseProductName() );
	    	verbindung.close();
	    }
	      
	    catch (SQLException e) 
	    {
	        System.out.println("Fehler bei der Verbindung zur Datenbank aufgetreten");
	    }
```

Bildschirmausgabe:


```
ProduktnameDatabase: ACCESS
```
Soweit sogut

jetzt bin ich aber schon länger auf der suche wie ich aus der tabelle "Namen" in der Datenbank "datenbankanbindung.mdb" die Vornamen oder die Nachnahmen ausgeben kann 

wäre für eure Hilfe sehr Dankbar 

hoffe es ist nicht zu komliziert geschrieben  ^^"

mfG

EclipseUser


----------



## EclipseUser (15. Jan 2009)

hmm habs selber hinbekommen vll gibts da noch einfachere wege aber soweit funktioniert es 


```
import java.sql.*;

public class Datenbankanbindung {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub

		Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
		Connection verbindung = DriverManager.getConnection( "jdbc:odbc:Datenbank" );

		Statement befehl = verbindung.createStatement();
		ResultSet ergebnis = befehl.executeQuery("SELECT Vorname, Nachname FROM Namen");
		while (ergebnis.next()) 
			{
			String vorname = ergebnis.getString("Vorname");
			String nachname = ergebnis.getString("Nachname");
			System.out.println(vorname + " " + nachname);
			}
		
		befehl.close();
		verbindung.close();
		
	}

}
```
[/code]

jetzt nur ne frage wenn ich ergebnis schliese 

```
ergebnis.close();
```
bekomme ich die namen ausgegeben aber auch einen fehler

Exception in thread "main" java.sql.SQLException: ResultSet is closed
	at sun.jdbc.odbc.JdbcOdbcResultSet.checkOpen(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcResultSet.clearWarnings(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcResultSet.close(Unknown Source)
	at anbindung.Datenbankanbindung.main(Datenbankanbindung.java:27)


----------



## frapo (17. Jan 2009)

Wann genau schließt du denn _ergebnis_?


----------



## Layzie (19. Jan 2009)

Wieso willst du denn das Ergebnis schließen?

Kann es nicht sein, dass es sinnvoller ist, die Verbindung zu schließen?


```
verbindung.close()
```

Grüße
Layzie


----------



## Ebenius (19. Jan 2009)

@Layzie: Normaler Weise macht man in dieser Reihenfolge: 
	
	
	
	





```
resultSet.close();
statement.close();
connection.close();
```

Am besten in einem finally-Block.

Ebenius


----------

