# Problem mit executeQuery in mysql



## NoobGast (13. Jun 2005)

Hi Leute,
ich sitz seit zig stunden daran und komm nicht auf meinen Fehler....

Ich habe die aktuelle MySQL Server 5.0 Version und den Connector/J . War auch bisher alles kein Problem,wenn ich versuche den Treiber zu laden klappt auch alles.

Bisher habe ich nur auf der Kommandozeile mit meinem MySQL server "kommuniziert" war auch nie ein Problem. 
Doch da wir in der Schule Datenbanken machne und auch Java - wollte ich das verbinden.

Hier ist mal mein COde : Übrigens, ich melde mich als "root" an meinem "localhost" an, die Datenbank heisst "noten" und die betreffende Tabelle "schueler".


```
import java.sql.*;

public class LoadDriver {
    public static void main(String[] args) {
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();      
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        
        try {
	    // passwort absichtlich geändert =)
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/noten?user=root&password=...");

				Statement stmt = null;
				ResultSet rs = null; 
			
				try {
				    stmt = conn.createStatement();
				    rs = stmt.executeQuery("SELECT * FROM schueler");
				} finally {
				    if (rs != null) {
				        try {
				            rs.close();
				        } catch (SQLException sqlEx) { 
				        
				        }
				
				        rs = null;
				    }
				
				    if (stmt != null) {
				        try {
				            stmt.close();
				        } catch (SQLException sqlEx) { 
				        
				        }
				
				        stmt = null;
				    }
				}
        } catch (SQLException ex) {
            // handle any errors
            System.out.println("SQLException: " + ex.getMessage());
            System.out.println("SQLState: " + ex.getSQLState());
            System.out.println("VendorError: " + ex.getErrorCode());
        }           
	}
}
```

Doch scheinbar klappt etwas nicht richtig, erstmal kriege ich zig Sekunden lang jede menge Ausgaben und dann am Ende seh ich nur das hier als Ausgabe (die ganze Menge da vor erscheint hier nicht, wäre zu viel zum posten):



> Sun Jun 12 12:53:54 CEST 2005 TRACE:      --> ConnectionProperties.java:2426 com.mysql.jdbc.ConnectionProperties$BooleanConnectionProperty.getValueAsBoolean()
> Sun Jun 12 12:53:54 CEST 2005 TRACE:      <--  ConnectionProperties.java:2426 com.mysql.jdbc.ConnectionProperties$BooleanConnectionProperty.getValueAsBoolean(..
> ) returning false
> Sun Jun 12 12:53:54 CEST 2005 TRACE:     <--  ConnectionProperties.java:2059 com.mysql.jdbc.ConnectionProperties.postInitialization(..) returning null
> ...



Mach ich was falsch ? Ist der Code schon falsch ? braucht ihr mehr infos?


----------



## NoobGast (13. Jun 2005)

Was ich vergessen hab: Exceptions erscheinen scheinbar keine, also kann keine Ausgabe eines "gewöhnlichen" Stack Traces sehen...


----------



## bummerland (13. Jun 2005)

auf den ersten blick würd ich sagen, der port fehlt in der zeile:

```
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/noten?user=root&password=...");
```
siehe auch die FAQ


----------



## KISS (13. Jun 2005)

sieht so aus als wuerde dein resultset korrekt finallisiert, was ok ist da du in deinem code nichts anderes damit machst. kenne mich allerdings mit mysql nicht aus.


----------



## NoobGast (13. Jun 2005)

danke für die antworten, habe die faq gelesen , sowie andere beiträge.

Habe es ebenfalls mit Angabe des Ports probiert.

Eine andere Frage: Ich hole mir ja nur das Statement, also führe nur das select durch, wenn alles korrekt funktioniert - müsste mein Programm dann schon was ausgeben ? nein oder ?

Weiss halt momentan nicht genau wodran es liegt ... wenn es helfen würde könnte ich morgen den kompletten Output des Programms posten, sind aber schon einige Zeilen.....


----------



## KISS (13. Jun 2005)

tu mir den gafallen, und modifiziere mal dein prog dahingehend

```
try 
{ 
    stmt = conn.createStatement(); 
    rs = stmt.executeQuery("SELECT * FROM schueler"); 
    if(rs.nex())
    {
         System.err.println("geht");
    }
    else
    {
       System.err.println("jammer");
     } 
}
```


----------



## Gast (13. Jun 2005)

Kiss: du meinst also alles funktioniert ordnungsgemäß? die frage habe ich mir auch schon gestellt.....also ob alles so läuft wie es laufen müsste....

Aber dann müsste  ich doch auf das ResultSet Objekt zugreifen können oder ? Also irgendwelche Methoden darauf aufrufen können die mir dann Bestätigung bringen.
Wie ist es denn möglich den kompletten Ausgabeteil vom Select zu erhalten ? Also das ich das was Select mir zurück geben würde auf dem Bildschirm habe....?


----------



## KISS (13. Jun 2005)

ich fuerchte hier liegt ein tiefes missverstanedniss vor

um mit einem ResultSet zu arbeiten braucht man vor allem
ResultSet.next()
und ResultSet.get()

weiteres erklaert die api, um die daten darzustellen musst du halt die daten irgendowhin schaufeln und einfuegen, also zum Beispiel in eine JTable


----------



## Gast (13. Jun 2005)

ok danke. ansonsten werd ich mal gucken ob sich nicht doch ein stack trace irgendwo eingeschlichen hat.

danke für eure antworten, werde mal gucken ob sich da was machen lässt...


----------



## mic_checker (13. Jun 2005)

wenn du ne "Bestätigung" willst ob es geklappt hat geh in ner Schleife rs.next() durch - guck ma in der API danach:

hier

Ansonsten kannst du ja noch posten ob es da keine Ausgaben gibt.


----------

