MySQL API is a library-plugin that simplifies the process of running a database. SQL commands are replaced with methods that require a few arguments in order to execute a query.
- Tested Minecraft Versions:
- 1.7
- 1.8
- 1.9
- 1.10
- 1.11
- 1.12
- 1.13
- 1.14
- 1.15
- 1.16
- Contributors:
- Can be found in the Discord server (https://vagdedes.com/discord)
- Languages Supported:
- English
- Donation Link:
- https://www.paypal.me/VagdedesBilling
Permissions
mysql.admin - Gives your permission to /mysql command.
Commands
/mysql reload/rl - Reloads the configuration.
/mysql connect - Connects the plugin to the database.
/mysql disconnect - Disconnects the plugin from the database.
/mysql reconnect - Resets the plugin's connection to the database.
Config API
Class: me.vagdedes.basic.Config
This class will control the plugin's configuration. It is recommended to reconnect the database after configuration changes.
Basic APICode (Text):
void create() // Creates the config or object if doesn't exist.
void reload() // Reloads the plugin config.
void clear() // Clears the mysql configuration file.
String getHost() // Returns the host.
String getUser() // Returns the user.
String getPassword() // Returns the password.
String getDatabase() // Returns the database.
String getPort() // Returns the port.
Boolean getSSL() // Returns "true" if SSL connection is enabled.
void setHost(String s) // Changes the host.
void setUser(String s) // Changes the user
void setPassword(String s) // Changes the password.
void setDatabase(String s) // Changes the database.
void setPort(String s) // Changes the port.
void setSSL(Boolean b) // Changes the SSL connection.
Class: me.vagdedes.mysql.MySQL
This class contains the base methods of the API. The update() and query() methods can be used to extend the API's capabilities.
Advanced APICode (Text):
void connect() // Connects to the database.
void disconnect() // Disconnects from the database.
void reconnect() // Restarts the connection to the database.
Boolean isConnected() // Checks if the connection exists.
void update(String command) // Excecutes an update to the database.
ResultSet query(String command) // Returns a query from the database.
Connection getConnection() // Returns the mysql current connection.
Class: me.vagdedes.mysql.SQL
If the advanced methods of the SQL class aren't enough for your systems, you can still make your own by using MySQL's class update() and query() methods.
Code (Text):
void deleteTable(String table) // Deletes a table from the database.
void truncateTable(String table) // Clears a table in the database.
Integer countRows(String table) // Coureturns retunrs the number of rows in a table.
Boolean tableExists(String table) // Returns if a table exists in the database.
void set(String selected, Object object, String column, String logic_gate, String data, String table) // Updates the data of a column with your inserted object.
SQL.set("cooldown", 5, "name", "=", "Player", "basic_table"); // Example
void set(String selected, Object object, String where_arguments, String table) // Updates the data of a column with your inserted object based on multiple arguments.
SQL.set("cooldown", 5, new String[]{"name=Player", "cooldown=0"}, "basic_table"); // Example
void deleteData(String column, String logic_gate, String data, String table) // Deletes data from a table.
SQL.deleteData("nickname", "=", "George2009", "ranks"); // Example
void insertData(String columns, String values, String table) // Inserts data into a table.
SQL.insertData("name, kit, cooldown", " 'Sam', 'Fisherman', '29' ", "kitpvp"); // Example
void upsert(String selected, Object object, String column, String logic_gate, String data, String table) // Updates the data of a column with your inserted object if it exists, or alternatively inserts a new row to the table.
SQL.upsert("cooldown", 5, "name", "=", "Player", "basic_table"); // Example
Boolean exists(String column, String data, String table) // Checks if a data exists in a certain column.
Boolean b = SQL.exists("custom_nickname", "&1J&2o&3h&4n", "player_settings"); // Example
void createTable(String table, String columns) // Creates a new table if it doesn't already exist.
SQL.createTable("ranks", "rank INT (11), join_date TIMESTAMP"); // Example
Object get(String selected, String column, String logic_gate, String data, String table) // Returns an object variable owned by the selected column.
Object o = SQL.get("kills", "uuid", "!=", "deleted_player", "pvp_stats"); // Example
Object get(String selected, String[] where_arguments, String table) // Returns an object variable owned by the selected columns.
Object o = SQL.get("kills", new String[]{"uuid != deleted_player", "enabled = 1"}, "pvp_stats"); // Example
ArrayList<Object> listGet(String selected, String column, String logic_gate, String data, String table) // Returns an object variable owned by the selected column.
ArrayList<Object> arrayList = SQL.listGet("kills", "uuid", "!=", "deleted_player", "pvp_stats"); // Example
for (Object individual : arrayList) {
// Do Stuff
}
ArrayList<Object> listGet(String selected, String[] where_arguments, String table) // Returns an object variable owned by the selected columns.
ArrayList<Object> arrayList = SQL.listGet("kills", new String[]{"uuid != deleted_player", "enabled = 1"}, "pvp_stats"); // Example
for (Object individual : arrayList) {
// Do Stuff
}
Asynchronous Processing
To process tasks asynchronously, use the following method provided by the Bukkit library.
Code (Text):
Bukkit.getScheduler().runTaskAsynchronously(pluginObject, () -> {
// implement code here
});

MySQL API 3.3
A simplified API that will help you work with your Minecraft related database.
-
Zach_FR, Kagrurnaax, Lazo and 4 others like this.
Recent Updates
- Version 3.3 Nov 20, 2020
- Version 3.2 Mar 21, 2020
- Version 3.1 Mar 5, 2020
Recent Reviews
-
mathiaseklund
- 5/5,
I like this resource very much as I am often too lazy to make my own SQL Handler when making private projects.
Would be awesome if you could add a custom event that's fired when the SQL connection is established. :) -
minping
- 5/5,
Works like magic! I love this API, but why is it prints "SQL connected" every query?
-
hanktnt
- 5/5,
great api but can you add an example XD
im a beginner
thx dude
love this api. -
minez
- 5/5,
Great plugin. I would like to add a full asynchronous, but this is only at the request of the author. Thanks!
-
Author's Response
Thanks for the review. Near the bottom of the overview page, it's explained how to execute a method asynchronously.
-
Jochyoua
- 5/5,
Using this with my plugin, not really used to MySQL but this API helps me a lot, really nice author and great API :)
-
Bruce0203
- 5/5,
This API is my first Using API.
Really helpful nice plugin.
Thank you for made this. -
Scofield__
- 5/5,
Love this API. And really helpful support. fixed an issue in 10 minutes, Keep it up 5*
-
DoggyPlayss
- 5/5,
Cool API, makes it much easier to work with MySQL. Its really good for new developers as its really easy to understand! Thanks for making it you rock!
-
KR_GAMING2005
- 5/5,
Thanks so mutch I have tried working with MySQL Databases before and i just coudent understand it (Sorry for bad English Im Swedish)
-
NixiCZ
- 4/5,
Hello there,
your plugin is very useful and creative. But i have one problem.
I'm using your plugin at server 1.12.2 version and that works. But when I use my own plugin with your API plugin on 1.8.8 version server it don't want to connect to the same database.. It wrote me: Unknown initial character set index '255' received from server. Can you help me?
All console output: https://pastebin.com/2Bx3SXBd-
Author's Response
Reviews should represent your opinion, so please delete it and provide me a paste of your configuration via a conversation or the resource's thread.