Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.bukkit.configuration.file.YamlConfiguration;
- import java.io.File;
- import java.sql.*;
- public class DatabaseManager {
- private String ip;
- private String dbName;
- private String usrName;
- private String password;
- private int port = 3306;
- private Connection connection;
- private boolean failedMySQL = false;
- private static DatabaseManager instance = null;
- public static DatabaseManager get() {
- return instance == null ? instance = new DatabaseManager() : instance;
- }
- public void setup(){
- File file = new File(Main.get().getDataFolder(), "MySQL.yml");
- boolean createFile = !file.exists();
- if (createFile) {
- //TODO ne neue MySQL.yml file erstllen
- failedMySQL = true;
- }else{
- YamlConfiguration mysqlFile = YamlConfiguration.loadConfiguration(file);
- ip = mysqlFile.getString( "MySQL.IP", "Unknown");
- dbName = mysqlFile.getString("MySQL.DB-Name", "Unknown");
- usrName = mysqlFile.getString("MySQL.Username", "Unknown");
- password = mysqlFile.getString("MySQL.Password", "Unknown");
- port = mysqlFile.getInt("MySQL.Port", 3306);
- connectMySQLServer();
- }
- //TODO exec statement: CREATE TABLE IF NOT EXISTS [...]
- }
- public void shutdown(){
- try {
- connection.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- private void connectMySQLServer() {
- try {
- connection = DriverManager.getConnection("jdbc:mysql://" + ip + ":" + port + "/" + dbName + "?verifyServerCertificate=false&useSSL=false&autoReconnect=true", usrName, password);
- } catch (Exception exc) {
- System.out.println("\n \n \nMySQL-Error\nCould not connect to MySQL-Server!\nCheck your MySQL.yml \n \n");
- failedMySQL = true;
- }
- }
- public void executeStatement(String sql, Object... parameters) {
- executeStatement(sql, false, parameters);
- }
- public ResultSet executeResultStatement(String sql, Object... parameters) {
- return executeStatement(sql, true, parameters);
- }
- private ResultSet executeStatement(String sql, boolean result, Object... parameters) {
- try {
- PreparedStatement statement = connection.prepareStatement(sql);
- for (int i = 0; i < parameters.length; i++) {
- Object obj = parameters[i];
- if(obj instanceof Integer)
- statement.setInt(i + 1, (Integer) obj);
- else if(obj instanceof String)
- statement.setString(i+1, (String) obj);
- else if(obj instanceof Long)
- statement.setLong(i+1, (Long) obj);
- else
- statement.setObject(i+1, obj);
- }
- if(result){
- ResultSet resultSet = statement.executeQuery();
- return resultSet;
- }else{
- statement.execute();
- statement.close();
- }
- return null;
- } catch (SQLException e) {
- System.out.println("SQL -> "+sql);
- e.printStackTrace();
- return null;
- }
- }
- public boolean isConnectionValid(int timeout){
- try {
- return connection.isValid(timeout);
- } catch (SQLException e) {
- e.printStackTrace();
- return false;
- }
- }
- public boolean isFailedMySQL() {
- return failedMySQL;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement