Java - menší patálie (MySQL)

Pokec o čemkoliv ostatním
Message
Autor
WorkiS
Příspěvky: 112
Registrován: 22 pro 2015, 00:08
Reputation: 0

Java - menší patálie (MySQL)

#1 Příspěvekod WorkiS » 05 črc 2016, 08:53

82.208.17.20:27816

Zdravím,

stala se mi menší patálie. Potřebuji vrátit z MySQL getRank(), který je typu String, asi to tak musí zůstat aby vracel String. Když mám ChatEvent, tak potřebuji zjístit o jaký rank se jedná a jeho barvu, takže asi nějak takto:

Kód: Vybrat vše

Rank rank = Core.getInstance().getFetchData().getRank(player.getUniqueId());


Což mi ale nejde, jelikož jsem dal že je to typu String. Jak to tedy mám udělat? Hlavně potřebuji získat barvu toho ranku, což zapříčíním rank.getRank().

getRank() metoda, která mi stejnak nefunguje:

Kód: Vybrat vše

    public final String getRank(UUID uuid) {
        String i = String.valueOf("");
        try {
            ResultSet resultSet = Core.getInstance().getMySQL().getCurrentConnection().createStatement().executeQuery("SELECT rank FROM Accounts WHERE UUID = `" + uuid.toString() + "`");
            if ((resultSet.next() && (String.valueOf(resultSet.getString("rank")) == null))) {}
            i = String.valueOf(resultSet.getString("rank"));
        } catch (SQLException localSQLException) {
            localSQLException.printStackTrace();
        }

        return i;
    }


ChatListener:

Kód: Vybrat vše

    @EventHandler
    public void onChat(AsyncPlayerChatEvent event) {
        event.setCancelled(true);

        Player player = event.getPlayer();
        Rank rank = Core.getInstance().getFetchData().getRank(player.getUniqueId());
        String name = event.getPlayer().getName();

        for (Player p : Bukkit.getOnlinePlayers()) {
            player.sendMessage("" + rank.getColor() + " " + name + event.getMessage());
        }
    }


1) Potřebuji opravit getRank() metodu
2) Potřebuji získat getColor() v eventu

Doufám, že mě chápate, potřebuji získat proměnnou Rank rank od které získám getColor(), ale metodu getRank() mám typu String, tak jak to udělám?

Děkuji moc.

Mike8748
Příspěvky: 823
Registrován: 30 bře 2014, 10:05
Reputation: 28

Re: Java - menší patálie (MySQL)

#2 Příspěvekod Mike8748 » 05 črc 2016, 11:21

a třída Rank vypadá jak?

Mike8748
Příspěvky: 823
Registrován: 30 bře 2014, 10:05
Reputation: 28

Re: Java - menší patálie (MySQL)

#3 Příspěvekod Mike8748 » 05 črc 2016, 17:20

BlackFire72 píše:Máš špatně napsané sql query

SELECT rank FROM Accounts WHERE UUID = `" + uuid.toString() + "`"
na
SELECT * FROM Accounts WHERE UUID=`" + uuid.toString() + "`"


proč by proboha měl používat SELECT * když jediná hodnota která ho evidentně zajímá je sloupec rank ?

WorkiS
Příspěvky: 112
Registrován: 22 pro 2015, 00:08
Reputation: 0

Re: Java - menší patálie (MySQL)

#4 Příspěvekod WorkiS » 05 črc 2016, 17:43

Taky jsem si říkal, ale celé jsem to předělám, teď si to navrhuji. Bylo by to náročné na výkon. Ještě k tomu, já nepotřebuji vybírat všechny hodnoty jméno, uuid, mě stačí pouze rank. :D

Uživatelský avatar
Mysteria
Příspěvky: 9122
Registrován: 26 pro 2009, 15:40
Reputation: 7
Bydliště: Česká republika
Kontaktovat uživatele:

Re: Java - menší patálie (MySQL)

#5 Příspěvekod Mysteria » 05 črc 2016, 17:44

Hvězdička by se hlavně neměla používat nikdy kromě rychlého testování, protože stejně v 99% případů nejsou potřeba všechny sloupce.
Na druhou stranu je fajn, že pouští to query v novém vlákně, z toho by se zakladatel tématu mohl určitě inspirovat.


Zpět na „Off topic“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 9 hostů