Rednael Posted March 20, 2016 Share Posted March 20, 2016 Hallo. Ich möchte in meinem Spigot Plugin eine Datenbankverbindung aufbauen (1.9). Allerdings kommt ständig die auf dem Bild beschriebene Fehlermeldung, mit der ich nicht sehr viel anfangen kann. Ich habe alles so gemacht, wie es in verschiedenen Tutorials und Videos beschrieben war, vielleicht kann mir ja jemand helfen. Link to comment Share on other sites More sharing options...
Yuki Posted March 20, 2016 Share Posted March 20, 2016 Hi, ohne den Code zu kennen ist es hier denke schwierig eine Aussage zu treffen. Würdest du den Teil des Verbindungsaufbauen mal posten (in Code-Tags) so dass man dies mal anschauen kann? Logindaten natürlich entfernen bzw ersetzen, falls diese Hardcoded sein sollten. -Yuki Link to comment Share on other sites More sharing options...
boomer41 Posted March 20, 2016 Share Posted March 20, 2016 Da steht doch eindeutig "Error in SQL Syntax"... Deine SQL-Anweisung ist fehlerhaft. Link to comment Share on other sites More sharing options...
Rednael Posted March 20, 2016 Author Share Posted March 20, 2016 (edited) Das ist die MySQL.java, in der ich die Verbindung aufbaue, das funktioniert, nur dass er mir beim QueryUpdate (verbindungsUpdate()) einen Fehler ausgibt. package net.rednaelde.plugin; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.bukkit.Bukkit; public class MySQL { private String dbip; private String dbport; private String dbname; private String dbuser; private String dbpassword; private Connection verbindung; public MySQL() { this.dbip = start.datConf.getString("datenbank.dbip"); this.dbport = start.datConf.getString("datenbank.dbport"); this.dbname = start.datConf.getString("datenbank.dbname"); this.dbuser = start.datConf.getString("datenbank.dbuser"); this.dbpassword = start.datConf.getString("datenbank.dbpassword"); this.starteVerbindung(); } public Connection starteVerbindung() { try { Class.forName("com.mysql.jdbc.Driver"); this.verbindung = DriverManager.getConnection("jdbc:mysql://" + this.dbip + ":" + this.dbport + "/" + this.dbname + "?user=" + this.dbuser + "&password=" + this.dbpassword); return verbindung; } catch (Exception e) { e.printStackTrace(); } return null; } public Connection erhalteVerbindung() { return verbindung; } public void verbindungsUpdate(String query) { PreparedStatement ps = null; try { ps = (PreparedStatement) this.verbindung.prepareStatement(query); ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); Bukkit.getConsoleSender().sendMessage(start.prefix + "§cFehler beim Zugriff auf die Datenbank!"); } finally { this.trenneRessourcen(null, ps); } } public void trenneRessourcen(ResultSet rs, PreparedStatement ps) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); Bukkit.getConsoleSender().sendMessage(start.prefix + "§cFehler beim Trennen der Datenbank-Verbindung!"); } } if (ps != null) { try { ps.close(); } catch (SQLException e) { e.printStackTrace(); Bukkit.getConsoleSender().sendMessage(start.prefix + "§cFehler beim Trennen der Datenbank-Verbindung!"); } } } public void trenneVerbindung() { try { verbindung.close(); } catch (SQLException e) { e.printStackTrace(); Bukkit.getConsoleSender().sendMessage(start.prefix + "§cFehler beim Trennen der Datenbank-Verbindung!"); } finally { verbindung = null; } } } Als nächstes die Start-Klasse, in der ich beim Aktivieren überprüfen möchte, ob eine Tabelle bereits existiert und wenn nicht, sie dann zu erzeugen. package net.rednaelde.plugin; import java.io.File; import java.io.IOException; import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.java.JavaPlugin; public class start extends JavaPlugin { public static String prefix = "§7[§6§lLobbySystem§7] "; public static String pre = "§6§lLobby§7§l>> §a"; public static String warnung = "§4§l!§7§l>> §c"; public static File dtb = new File("plugins/LobbySystem", "datenbank.yml"); public static FileConfiguration datConf = YamlConfiguration.loadConfiguration(dtb); private MySQL base; @Override public void onEnable() { loadConfig(); try { this.base = new MySQL(); Bukkit.getConsoleSender().sendMessage(prefix + "§aVerbindung zur Datenbank aufgebaut!"); } catch (Exception e) { Bukkit.getConsoleSender().sendMessage(prefix + "§cVerbindung zur Datenbank fehlgeschlagen!"); } this.base.verbindungsUpdate("CREATE TABLE IF NOT EXISTS mc_spieler (uuid varchar(30), name varchar(30)"); registerEvents(); registerCommands(); Bukkit.getConsoleSender().sendMessage(prefix + "§aDas Plugin wurde eingeschaltet"); } @Override public void onDisable() { Bukkit.getConsoleSender().sendMessage(prefix + "§cDas Plugin wurde ausgeschaltet"); } public void loadConfig() { datConf.options().copyDefaults(true); datConf.addDefault("datenbank.dbip", "datenbank.ip"); datConf.addDefault("datenbank.dbport", "3306"); datConf.addDefault("datenbank.dbname", "Datenbank"); datConf.addDefault("datenbank.dbuser", "Benutzer"); datConf.addDefault("datenbank.dbpassword", "Passwort"); try { datConf.save(dtb); } catch (IOException e) { Bukkit.getConsoleSender().sendMessage(prefix + "§cDie Datei §eplugins/datenbank.yml §ckonnte nicht geladen werden!"); } } public MySQL erhalteDatenbank() { return this.base; } public void registerEvents() { } public void registerCommands() { } } Das ist das einzige, was ich bisher habe. Ich hoffe, ihr könnt mir dabei helfen ;). Edited March 20, 2016 by Rednael Link to comment Share on other sites More sharing options...
boomer41 Posted March 20, 2016 Share Posted March 20, 2016 this.base.verbindungsUpdate("CREATE TABLE IF NOT EXISTS mc_spieler (uuid varchar(30), name varchar(30)"); => this.base.verbindungsUpdate("CREATE TABLE IF NOT EXISTS mc_spieler (uuid varchar(30), name varchar(30))"); Link to comment Share on other sites More sharing options...
Rednael Posted March 20, 2016 Author Share Posted March 20, 2016 vor 3 Minuten schrieb boomer41: this.base.verbindungsUpdate("CREATE TABLE IF NOT EXISTS mc_spieler (uuid varchar(30), name varchar(30)"); => this.base.verbindungsUpdate("CREATE TABLE IF NOT EXISTS mc_spieler (uuid varchar(30), name varchar(30))"); Vielen Dank Ich hab es jetzt nach etwas Probieren auch rausbekommen, war gestern wohl einfach zu müde zum Schreiben. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now