Frage von MinecrafterPG, 35

Wieso funktioniert dieses Minecraft Plugin nicht?

Hi Leute,

ich habe hier ein Minecraft Plugin, dass Spielernamen aus einer Datenbank auslesen soll (mit dem Command /player wird alles gestartet). Wenn ich aber /player eingebe, kommt sowas wie com.mysql.jdbc.JBDC4ResultSet@23bd1b13.

What did I do wrong???

LG, hier ist der Code:

@Override
public void onEnable() {  
    getCommand("player").setExecutor(this);
    System.out.println("Plugin aktiviert");
}


@Override
public void onDisable() {
    System.out.println("Plugin deaktiviert");
}

@Override
public boolean onCommand(CommandSender sender, Command command, String cmd, String[] args) {

    connect();
    createTable();
    ResultSet rs = getResult("SELECT player FROM player WHERE server = 'defense' and active = 'true'");
    System.out.println("[DefenseLogin] Player: " + rs);
    
    return false;
}

  public static String username = "***";
  public static String password = "***";
  public static String database ="***";
  public static String host = "***";
  public static String port = "3306";
  public static Connection con;
  
  public static void connect()
  {
    if (!isConnected()) {
      try
      {
        con = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database, username, password);
        Bukkit.getConsoleSender().sendMessage("MySQL Verbindung aufgebaut");
      }
      catch (SQLException e)
      {
        e.printStackTrace();
      }
    }
  }
  
  public static void close()
  {
    if (isConnected()) {
      try
      {
        con.close();
        Bukkit.getConsoleSender().sendMessage("MySQL Verbindung geschlossen");
      }
      catch (SQLException e)
      {
        e.printStackTrace();
      }
    }
  }
  
  public static boolean isConnected()
  {
    return con != null;
  }
  
  public static void createTable()
  {
    if (isConnected()) {
      try
      {
        con.createStatement().executeUpdate("CREATE TABLE IF NOT EXISTS player (ID INTEGER NOT NULL, player VARCHAR(20), server VARCHAR(20), active VARCHAR(10), PRIMARY KEY(ID))");
      }
      catch (SQLException e)
      {
        e.printStackTrace();
      }
    }
  }
  
  public static void update(String qry)
  {
    if (isConnected()) {
      try
      {
        con.createStatement().executeUpdate(qry);
      }
      catch (SQLException e)
      {
        e.printStackTrace();
      }
    }
  }
  public static ResultSet getResult(String qry)
  {
    if (isConnected()) {
      try
      {
        return con.createStatement().executeQuery(qry);
      }
      catch (SQLException e)
      {
        e.printStackTrace();
      }
    }
    return null;
  }

}
Antwort
von MinecraftCoach, 24

Was soll den ausgelesen werden? Der Code sagt ja nicht sonderlich viel. Und das nächste mal bitte einen Code auf pastebin etc. posten wegen der Übersichtlichkeit ;)

Kommentar von MinecrafterPG ,

Ausgelesen werden soll das hier unten. Und dann soll das halt ausgegeben werden

SELECT player FROM player WHERE server = 'defense' and active = 'true'
Kommentar von MinecrafterPG ,

P.S. Alles klar nächstes Mal auf pastebin ;-)

Antwort
von Greylic, 10

Kannst du bitte mal deinen kompletten Error Code posten?

Kommentar von MinecrafterPG ,

Da ist kein Error Code, wenn ich /player eingebe, kommt [DefenseLogin] Spieler: com.mysql.jdbc.JBDC4ResultSet@23bd1b13

Und da, wo com.mysql.jdbc.JBDC4ResultSet@23bd1b13 steht, sollte natürlich eigendlich die Ergebnisse von dieser Abfrage stehen: 

SELECT player FROM player WHERE server = 'defense' and active = 'true'

Keine passende Antwort gefunden?

Fragen Sie die Community