# Trennt sich die Verbindung zur DB (MySQL) automatisch?



## nickname (19. Dez 2009)

Hi,

wenn ich Daten aus der DB aufrufe, trennt sich die Verbindung automatisch?

Denn wenn ich diesen Code ausführe
	
	
	
	





```
private void closeConnectionToDatabase()
				{//Diese wird indirekt über eine public-Methode durch einen Button aufgerufen, der die Verbindung trennen sollte			
					try
					{
						if(con != null)
						{
						con.close();
						}
						else
						{							
							System.out.println("con == null);							
						}
					}
					
					catch(SQLException sql)
					{
						de.getErrorMessage("Verbindung konnte nicht getrennt werden!" + sql, "Error");
					}
				}
```
bekomme ich diese Ausgabe in der Konsole
	
	
	
	





```
con == null
```

Ist das normal??

danke, nickname


----------



## U2nt (19. Dez 2009)

Zuallererst hast du ein Gänsefüsschen hinter 
	
	
	
	





```
con == null
```
 vergessen. Ansonsten, wenn die Connection 
	
	
	
	





```
null
```
 ist springt er ja automatisch zur Ausgabe von con == null.


----------



## nickname (19. Dez 2009)

Hi, danke erstmal.



> Zuallererst hast du ein Gänsefüsschen hinter con == null vergessen


das war nur für dieses Beispiel erstmal. Eigentlich gibt es da ein Methode aber zur bessern übersicht...



> wenn die Connection null ist springt er ja automatisch zur Ausgabe von con == null.


das ist mir schon bewusst, dass das dann ausgeführt wird. Ich habe aber vorher mit


```
private void connectionToDatabase()
	{
		try
		{
			Class.forName(treiberName);					
		}
		
		catch(ClassNotFoundException cl)
			{
				de.getErrorMessage("Verbindung konnte nicht erstellt werden!", "Error");
			}
				
		try
		{
			con = DriverManager.getConnection(url,userName,password);
             de.getInformationMessage("Treiber geladen und Verbindung vorhanden!", "Information");			
			abfrageDatenbankAdresse(con);//Rufte die Methode auf, wo ResultSet usw. vorliegen
		}
		
		catch(SQLException sql)
			{
				System.out.println("Verbindung nicht vorhanden");
			}
	}
```

schon das hier aufgerufen.

Damit müsste doch die Verbindung zur DB aufgebaut sein und auch erstmal bestehen, oder nicht?


gruß nickname


----------



## nickname (19. Dez 2009)

Kann es vllt sein, dass ich jedesmal, bei einer Anfrage an die DB, eine neue Statement-Instanz 
erzeugen muss?

Ich habe mir folgendes überleget. Beim ersten Durchlauf mit(ist nur ein kleiner Aussschnitt):

```
String name, vorname;
...
...
try
			{	String str = "SELECT * FROM adresse";
				stat = c.createStatement();
				rs = stat.executeQuery(str);
				
					while(rs.next())
					{
						name = rs.getString("name");
						vorname = rs.getString("vorname");
					}
			}
			catch(SQLException sql)
			{
				System.out.println(sql);
			}
```
läuft der interene Zeiger koplett durch und dann "ende".
Aber müssten dann nicht die Inhalte aus
 "name = rs.getString("name");" und "vorname = rs.getString("vorname");" in den Instanz-Variablen gespeichert sein, damit man diese aufrufen kann?


gruß nickname


----------

