• 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!

Spigot MySQL Hilfe! Eigene Namen abspeichern!

Mayok

Minecrafter
Registriert
18 Mai 2020
Beiträge
3
Diamanten
300
Guten Tag liebe Community,


wie Ihr dem Titel vielleicht entnehmen könnt möchte ich Namen zu MySQL hinzufügen via Command.


Um es euch zu veranschaulichen hier noch eine detaillierte Beschreibung meines Vorhabens:


Im Endeffekt versuche ich gerade ein Nick Plugin zu erstellen.

Mit dem CMD "/nick add <name>" möchte ich einen Namen in einer Datenbank speichern.
Mit dem CMD "/nick delete <name>" möchte ich einen Namen aus der Datenbank entfernen.

Ich kenne mich leider noch nicht so gut mit MySQL aus. Und habe weiß leider auch nicht wie ich das umsetzen kann.


Ich hoffe einer von euch hat ein bisschen Zeit und Lust mir da etwas zu helfen.
Ich bedanke mich schon mal im Voraus!


MFG
:)
 

BlueCoding

Minecrafter
Registriert
20 Mai 2020
Beiträge
4
Diamanten
250
Minecraft
BlueCoding
Hey,
erstmal die frage, was erwartest du jetzt von uns?
Ein paar mehr Information währen auch schön.
Besteht schon eine Datenbank Verbindung oder brauchst du die auch?

Ich gehe jetzt mal davon aus das du bereits eine Verbindung zu deiner Datenbank hast.
Die Syntax von SQL ist an die englische Sprache angepasst. Also wenn du etwas in eine Tabelle eintragen möchtest, kannst du folgendes verwenden:
SQL:
INSERT INTO deinTabellenName (Spalte1, Spalte2) VALUES (?, ?)
Du könntest hier die ? direkt mit einer Variable ersetzen oder mit einem PreparedStatement festlegen. Natürlich vorher überprüfen ob der eingegebene Name bereits in der Tabelle vorhanden ist, damit keine Duplikationen entstehen und schon hast du den Namen eingetragen.

Ich hoffe, ich konnte dir mit dem Beitrag.
Bei rückfragen kannst du diese gerne hier stellen!
 

Chojo-chan

Teammaid
Social Media
Moderator
Administrator
Registriert
24 März 2013
Beiträge
293
Alter
5
Diamanten
645
Minecraft
Hadde
SQL:
INSERT INTO deinTabellenName (Spalte1, Spalte2) VALUES (?, ?)

Das kann man zwar machen, wäre aber halbwegs suboptimal.
Besser wäre es die UUID als Primary key zu verwenden und den Namen mit eine Upsert einzufügen.
Somit wird automatisch geprüft, ob für diese UUID bereits ein Eintrag existiert oder nicht.

SQL:
INSERT INTO nicknames
(uuid, nickname)
VALUES( 0000-000000-0000-0000, 'hadde')
ON DUPLICATE KEY UPDATE
nickname = 'hadde'
 

BlueCoding

Minecrafter
Registriert
20 Mai 2020
Beiträge
4
Diamanten
250
Minecraft
BlueCoding
Kann man natürlich so machen, habe es allerdings so verstanden, dass er nur Nicknames in die Datenbank eintragen möchte und diese später für ein "Nick-System" verwenden möchte. Da spielt die UUID höchstwahrscheinlich erst eine Rolle, wenn der Nickname jemandem zugewiesen wird.
 

Chojo-chan

Teammaid
Social Media
Moderator
Administrator
Registriert
24 März 2013
Beiträge
293
Alter
5
Diamanten
645
Minecraft
Hadde
Kann man natürlich so machen, habe es allerdings so verstanden, dass er nur Nicknames in die Datenbank eintragen möchte und diese später für ein "Nick-System" verwenden möchte. Da spielt die UUID höchstwahrscheinlich erst eine Rolle, wenn der Nickname jemandem zugewiesen wird.
Natürlich vorher überprüfen ob der eingegebene Name bereits in der Tabelle vorhanden ist, damit keine Duplikationen entstehen und schon hast du den Namen eingetragen.


Exakt dafür sind primary keys da. Das spart dir nen zweiten query, der checkt ob der Eintrag bereits vorhanden ist.
Und was bringt eine Tabelle, die nicht direkt verwendbar ist? Unabhängig davon ist eine Tabelle, welche keinen Primary Key hat ohnehin immer ein Zeichen für schlechte Datenbankplanung. Zumindest solange keine Indices verwendet werden, was ich bei dem aktuellen Fall mal nicht vermute.
 

BlueCoding

Minecrafter
Registriert
20 Mai 2020
Beiträge
4
Diamanten
250
Minecraft
BlueCoding
Exakt dafür sind primary keys da. Das spart dir nen zweiten query, der checkt ob der Eintrag bereits vorhanden ist.
Und was bringt eine Tabelle, die nicht direkt verwendbar ist? Unabhängig davon ist eine Tabelle, welche keinen Primary Key hat ohnehin immer ein Zeichen für schlechte Datenbankplanung. Zumindest solange keine Indices verwendet werden, was ich bei dem aktuellen Fall mal nicht vermute.
Habe mich noch nicht so viel mit SQL Auseinandergesetz. Werde mal versuchen deinen Vorschlag öfter umzusetzen, wenn ich so etwas benötige. Vielen Dank!
 
Oben