diff options
Diffstat (limited to 'src/main/java/com/redstoner/misc/mysql/MysqlHandler.java')
-rw-r--r-- | src/main/java/com/redstoner/misc/mysql/MysqlHandler.java | 105 |
1 files changed, 39 insertions, 66 deletions
diff --git a/src/main/java/com/redstoner/misc/mysql/MysqlHandler.java b/src/main/java/com/redstoner/misc/mysql/MysqlHandler.java index 909d276..d76227a 100644 --- a/src/main/java/com/redstoner/misc/mysql/MysqlHandler.java +++ b/src/main/java/com/redstoner/misc/mysql/MysqlHandler.java @@ -1,113 +1,86 @@ package com.redstoner.misc.mysql; +import com.redstoner.misc.Main; +import com.redstoner.misc.mysql.elements.MysqlDatabase; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.json.simple.parser.ParseException; + import java.io.File; import java.io.IOException; import java.io.Serializable; -import java.sql.Connection; -import java.sql.DatabaseMetaData; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; +import java.sql.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.json.simple.parser.ParseException; - -import com.redstoner.misc.Main; -import com.redstoner.misc.mysql.elements.MysqlDatabase; - -public class MysqlHandler -{ +public class MysqlHandler { public static MysqlHandler INSTANCE; - private String url, username, password; - - public MysqlHandler(String hostname, int port, String username, String password) - { + private String url, username, password; + + public MysqlHandler(String hostname, int port, String username, String password) { this.url = "jdbc:mysql://" + hostname + ":" + port + "/"; this.username = username; this.password = password; } - - public static void init() - { - Map<Serializable, Serializable> mysqlCredentials = new HashMap<>(); - File mysqlCredentialsFile = new File(Main.plugin.getDataFolder(), "mysqlCredentials.json"); - if (mysqlCredentialsFile.exists()) - { - try - { + + public static void init() { + Map<Serializable, Serializable> mysqlCredentials = new HashMap<>(); + File mysqlCredentialsFile = new File(Main.plugin.getDataFolder(), "mysqlCredentials.json"); + if (mysqlCredentialsFile.exists()) { + try { mysqlCredentials = JSONManager.loadMap(mysqlCredentialsFile); - } - catch (IOException | ParseException e) - { + } catch (IOException | ParseException e) { e.printStackTrace(); } - } - else - { + } else { Bukkit.getConsoleSender().sendMessage( ChatColor.RED + "MySQL config does not exist, creating an example one, things might (will) break!"); mysqlCredentials.put("hostname", "localhost"); mysqlCredentials.put("port", "3306"); mysqlCredentials.put("username", "your username here"); mysqlCredentials.put("password", "your password here"); - try - { + try { JSONManager.saveMap(mysqlCredentialsFile, mysqlCredentials); - } - catch (IOException e) - { + } catch (IOException e) { e.printStackTrace(); } } String hostname = (String) mysqlCredentials.get("hostname"); - int port = Integer.valueOf((String) mysqlCredentials.get("port")); + int port = Integer.valueOf((String) mysqlCredentials.get("port")); String username = (String) mysqlCredentials.get("username"); String password = (String) mysqlCredentials.get("password"); INSTANCE = new MysqlHandler(hostname, port, username, password); } - - private Connection getConnection(String databaseName) throws IllegalStateException - { + + public MysqlDatabase getDatabase(String databaseName) { + return new MysqlDatabase(getConnection(databaseName)); + } + + private Connection getConnection(String databaseName) throws IllegalStateException { Connection connection = null; - try - { + try { connection = DriverManager.getConnection(url + databaseName, username, password); - } - catch (SQLException e) - { + } catch (SQLException e) { throw new IllegalStateException("Cannot connect to the database!", e); } return connection; } - - public MysqlDatabase getDatabase(String databaseName) - { - return new MysqlDatabase(getConnection(databaseName)); - } - - public List<MysqlDatabase> getDatabases() - { - try - { - List<MysqlDatabase> databases = new ArrayList<>(); - Connection connection = DriverManager.getConnection(url.substring(0, url.length()), username, password); - DatabaseMetaData metadata = connection.getMetaData(); - ResultSet queryResults = metadata.getCatalogs(); - while (queryResults.next()) - { + + public List<MysqlDatabase> getDatabases() { + try { + List<MysqlDatabase> databases = new ArrayList<>(); + Connection connection = DriverManager.getConnection(url.substring(0, url.length()), username, password); + DatabaseMetaData metadata = connection.getMetaData(); + ResultSet queryResults = metadata.getCatalogs(); + while (queryResults.next()) { String databaseName = queryResults.getString("TABLE_CAT"); databases.add(new MysqlDatabase(getConnection(databaseName))); } connection.close(); return databases; - } - catch (SQLException e) - { + } catch (SQLException e) { e.printStackTrace(); return null; } |