Hallo liebe Community,
ich möchte euch mal meine MySQL-Methode zeigen, mit der ich normalerweise arbeite.
Um kurz ein Paar Worte dazu zu sagen:
Im "onEnable()"-Teil des Plugins wird die Funktion "onConnect()" ausgeführt, im "onDisable()"-Teil wird die Funktion "onDisconnect" aufgerufen.
Die Funktion "onReconnectScheduler()" und "onReconnect" dienen dazu, um die Verbindung zur Datenbank aufrecht zu erhalten, da diese sich nach ca. 8 Stunden trennt.
Sollten noch Fragen aufkommen, werde ich diese gerne beantworten!
Was ich nun gerne von euch wissen möchte:
- Wie findet ihr meine Bisherige Vorgehensweise, die ich verwende?
- Habt ihr Verbesserungsvorschläge?
Und viel interessanter für mich:
- Wie geht es noch?
Ich freue mich jetzt schon mal auf konstruktive Beiträge!
Mit österlichen Grüßen
Joans96
Ps: Ich hoffe, das ist der richtige Foren-Bereich für dieses Thema ^^
ich möchte euch mal meine MySQL-Methode zeigen, mit der ich normalerweise arbeite.
Code:
package de.PixelCrafter.Main.MySQL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.bukkit.Bukkit;
import de.PixelCrafter.Configuration.Messages;
import de.PixelCrafter.Main.MainPlugin;
public class MySQL
{
public static Connection connection;
private static int MySQLSchedulerID;
public static void onConnect()
{
try
{
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/"+ MySQLData.database, MySQLData.username, MySQLData.password);
System.out.println(Messages.c_prefix + "MySQL-Verbindung hergestellt!");
onReconnectScheduler();
}
catch (SQLException e)
{
System.err.println(Messages.c_prefix + "MySQL-Verbindung konnte nicht hergestellt werden!");
e.printStackTrace();
}
}
public static void onDisconect()
{
if(connection != null )
{
try
{
connection.close();
System.out.println(Messages.c_prefix + " MySQL-Verbindung beendet!");
if(Bukkit.getScheduler().isCurrentlyRunning(MySQLSchedulerID))
{
Bukkit.getScheduler().cancelTask(MySQLSchedulerID);
}
}
catch (SQLException e)
{
e.printStackTrace();
System.err.println(Messages.c_prefix + " MySQL-Verbindung konnte nicht getrennt werden!");
}
}
}
private static void onReconnectScheduler()
{
MySQLSchedulerID = Bukkit.getScheduler().scheduleSyncRepeatingTask(MainPlugin.getInstance(), new Runnable()
{
public void run()
{
onReconnect();
}
}, 20 * 60 * 60 *6, 20 * 60 * 60 *6);
}
private static void onReconnect()
{
if(connection != null)
{
try
{
connection.close();
System.out.println(Messages.c_prefix + " MySQL-Verbindung beendet!");
}
catch (SQLException e)
{
System.err.println(Messages.c_prefix + " MySQL-Verbindung konnte nicht getrennt werden!");
e.printStackTrace();
}
}
Bukkit.getScheduler().scheduleSyncDelayedTask(MainPlugin.getInstance(), new Runnable()
{
public void run()
{
try
{
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/"+ MySQLData.database, MySQLData.username, MySQLData.password);
System.out.println(Messages.c_prefix + "MySQL-Verbindung hergestellt!");
}
catch (SQLException e)
{
System.err.println(Messages.c_prefix + "MySQL-Verbindung konnte nicht hergestellt werden!");
e.printStackTrace();
}
}
}, 1L);
}
public static void onUpdate(String qry)
{
try
{
Statement stmt = connection.createStatement();
stmt.executeUpdate(qry);
}
catch (SQLException e)
{
e.printStackTrace();
}
}
public static ResultSet onQuery(String qry)
{
ResultSet rs = null;
try
{
Statement stmt = connection.createStatement();
rs = stmt.executeQuery(qry);
}
catch (SQLException e)
{
e.printStackTrace();
}
return rs;
}
}
Um kurz ein Paar Worte dazu zu sagen:
Im "onEnable()"-Teil des Plugins wird die Funktion "onConnect()" ausgeführt, im "onDisable()"-Teil wird die Funktion "onDisconnect" aufgerufen.
Die Funktion "onReconnectScheduler()" und "onReconnect" dienen dazu, um die Verbindung zur Datenbank aufrecht zu erhalten, da diese sich nach ca. 8 Stunden trennt.
Sollten noch Fragen aufkommen, werde ich diese gerne beantworten!
Was ich nun gerne von euch wissen möchte:
- Wie findet ihr meine Bisherige Vorgehensweise, die ich verwende?
- Habt ihr Verbesserungsvorschläge?
Und viel interessanter für mich:
- Wie geht es noch?
Ich freue mich jetzt schon mal auf konstruktive Beiträge!
Mit österlichen Grüßen
Joans96
Ps: Ich hoffe, das ist der richtige Foren-Bereich für dieses Thema ^^
Zuletzt bearbeitet: