Skip to content

Instantly share code, notes, and snippets.

@codebucketdev
Created January 22, 2014 13:25
Show Gist options
  • Save codebucketdev/8558660 to your computer and use it in GitHub Desktop.
Save codebucketdev/8558660 to your computer and use it in GitHub Desktop.
Exampleclass for my MySQL System
package de.codebucket.mysql;
import java.sql.SQLException;
import java.util.List;
import java.util.Random;
import de.codebucket.mysql.Operators.DataTypes;
public class SqlTest
{
//Instanzen der Datenbank und der benötigten Tabelle,
//um darauf leicht zugreifen zu können
private static Database data;
private static Table table;
//Dies sollte man beim starten der Anwendung/des Plugins machen ;)
public static void main(String[] args)
{
//Verbindungsdaten zur Datenbank
String hostn = "localhost";
Integer port = 3306;
String dbase = "database";
String usern = "root";
String passw = "";
//Holen einer neuen Datenbank-Instanz
Database db = new Database(hostn, port, dbase, usern, passw, true);
try
{
//WICHTIG: Verbindung öffnen :)
db.openConnection();
//Wenn Verbindung ohne Fehler geöffnet wurde, dann können wir die Instanz oben setzen.
data = db;
//Dies sind jetzt Teile von Tests, um zu gucken ob es geht :D
firstTest();
}
catch (ClassNotFoundException | SQLException e)
{
System.exit(0);
}
}
//Wir setzen die Spalten und die dazugehörigen Typen fest..
private static String[] columns = { "username", "password", "level", "uuid", "online" };
private static DataTypes[] types = { DataTypes.Text, DataTypes.Text, DataTypes.Int, DataTypes.Float, DataTypes.Boolean };
//Dies ist nur für den Zufall benötigt ;)
private static Random r = new Random();
public static void firstTest()
{
//Wir holen uns unsere Testtabelle von der Datenbank...
table = data.getTable("test_userdata");
//...und gucken ob sie überhaupt existiert :D
if(!table.exists())
{
//Falls nein, dann erstellen wir sie mit unseren oben festgelegten Daten :P
try
{
table.create(columns, types);
}
catch (SQLException e)
{
e.printStackTrace();
}
}
//ansonsten leeren wir die Tabelle :)
else
{
try
{
table.clear();
}
catch (SQLException e)
{
e.printStackTrace();
}
}
//JETZT füllen wir die (neue) Tabelle mit bestimmten Daten :D
Object[] values = { "Codebucket", "password_das_eh_die_nsa_kennt", 9000 /*OVER 9000 :D*/, 58968F, 0 };
try
{
table.insertEntry(columns, values);
}
catch (SQLException e)
{
e.printStackTrace();
}
for(int i = 0; i < 15; i++)
{
//Jetzt fügen wir zufällige Daten ein :)
Object[] randomValues = { "user" + r.nextInt(1000), "pws" + r.nextInt(100000), r.nextInt(50), r.nextFloat(), r.nextInt(2) };
try
{
table.insertEntry(columns, randomValues);
}
catch (SQLException e)
{
e.printStackTrace();
}
}
//Zum Schluss lesen wir die Größe der Tabelle aus.
try
{
System.out.println("["+table.getTablename()+"] Tablesize now: " + table.size());
}
catch (SQLException e)
{
e.printStackTrace();
}
//Wir warten noch 3 Sekunden bis wir weiter gehen :)
try
{
Thread.sleep(5*1000);
}
catch (InterruptedException e) {}
secondTest();
}
public static void secondTest()
{
//Soo nun wollen wir den User Codebucket auslesen und seine Daten verändern :D
String username = "Codebucket";
String password = null;
int level = 0;
float uuid = 0;
boolean online = false;
try
{
password = table.getString("password", "username", username);
//Was passiert nun hier?
//Also ich versuche aus der Spalte "password" das Password vom Benutzer (Spalte "username") Codebucket (Suche username) zu erhalten.
//Das machen wir jetzt mit dem rest auch :)
level = table.getInt("level", "username", username);
uuid = table.getFloat("uuid", "username", username);
online = table.getBoolean("online", "username", username);
}
catch (SQLException e)
{
e.printStackTrace();
}
System.out.println("Values of User Codebucket: ");
System.out.println("username: " + username + ", password: " + password +
", level: " + level + ", uuid: " + uuid + ", online: " + online);
//JETZT verändern wir die Daten >:D
password = "ach_ist_eh_jetzt_anders";
level = level / 8 * 10 * 2 / 80; //Weiss nicht mal was rauskommen soll :D
uuid = uuid * 1.5F;
//..und updaten sie in der Tabelle :)
Object[] updateValues = { username, password, level, uuid, 1 };
try
{
table.updateEntry(columns, updateValues, "username", username);
//Was passiert da oben??
//Ich suche nach der Zeile vom Benutzer Codebucket und ersetze die Daten in den Spalten ;)
}
catch (SQLException e)
{
e.printStackTrace();
}
//Wir warten noch 3 Sekunden bis wir weiter gehen :)
try
{
Thread.sleep(5*1000);
}
catch (InterruptedException e) {}
lastTest();
}
public static void lastTest()
{
//So jetzt wollen wir die Top 10 aller Benutzer mit den höchsten Leveln erhalten
//Dazu holen wir uns eine sortierte Liste ..
List<Object> liste = null;
try
{
liste = table.getSortedList("username", "level", 10);
}
catch (SQLException e)
{
e.printStackTrace();
}
if(liste != null)
{
try
{
//und geben sie auch mit den Werten aus :)
System.out.println("+++ TOP 10 USERS WITH MOST LEVELS +++");
int getter = 0;
for(int i = 0; i < liste.size(); i++)
{
getter++;
Object o = liste.get(i);
int level = table.getInt("level", "username", o);
System.out.println(getter + ". " + o + ": " + level);
}
System.out.println("+++ END OF THE LIST +++");
}
catch (SQLException e)
{
e.printStackTrace();
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment