• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

public Location ?

Nexus15

Kuhfänger
Registriert
30 September 2012
Beiträge
89
Diamanten
0
Ich habe wiedermal ein kleines Problem ...
Code:
public  Location getVectorLeft(String pn, World w) throws SQLException {
        Statement stmt = null;
        ResultSet rs = null;
        Connection con = DriverManager.getConnection(url, user, pass);
        stmt = con.createStatement();
        rs = stmt.executeQuery("SELECT x, y, z FROM users WHERE name='"+pn+"';");
        while(rs.next()) {
            double x = rs.getDouble(1);
            double y = rs.getDouble(2);
            double z = rs.getDouble(3);
            Location loc = new Location(w,x,y,z); // Diese Location möchte ich zurückgeben...
            
        }
        return loc; // Variable loc ist nicht Verfügbar, da sie nur "local" ist, dass möchte ich ändern ! 
        
    }
 

MrFlieder

Braumeister
Registriert
30 Dezember 2011
Beiträge
332
Diamanten
0
Minecraft
MrFlieder
Um zum eigentlichen Problem zurückzukehren:
Du legst Location loc in der while-Schleife an, deshalb kannst du darauf nicht außerhalb dieser Schleife zugreifen.

Du musst zuerst die Location loc deklarieren und erst dann in der while-Schleife initialisieren:
Code:
Location loc = null;
while(true)
{
loc = new Location(world, x, y, z);
}
return loc;
 
H

Hecke29

Guest
Ich hab keine Ahnung von Java, aber wenn eh nur ein Ergebnis kommt, geht dann nicht auch das hier:
Code:
[..]
        rs = stmt.executeQuery("SELECT x, y, z FROM users WHERE name='"+pn+"' LIMIT 1;");
        rs.next()
        double x = rs.getDouble(1);
        double y = rs.getDouble(2);
        double z = rs.getDouble(3);
        return new Location(w,x,y,z);
[..]
 

Crafter6432

Workaholic
Registriert
22 Dezember 2011
Beiträge
681
Diamanten
1
Ich hab keine Ahnung von Java, aber wenn eh nur ein Ergebnis kommt, geht dann nicht auch das hier:
Code:
[..]
        rs = stmt.executeQuery("SELECT x, y, z FROM users WHERE name='"+pn+"' LIMIT 1;");
        rs.next()
        double x = rs.getDouble(1);
        double y = rs.getDouble(2);
        double z = rs.getDouble(3);
        return new Location(w,x,y,z);
[..]


Ja, allerdings sollte man vorher mit if(rs.net()) prüfen ob ein Wert zurück geben wurde.
 
Oben