package me.probablydiary.caveeconomy.util; import me.probablydiary.caveeconomy.database.Database; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DatabaseUtil{ public static boolean accountExists(String uuid){ ResultSet accounts; boolean exists = false; PreparedStatement preparedStatement = null; try{ Connection connection = Database.getConnection(); String statementString = "SELECT * FROM ACCOUNTS WHERE PLAYERUUID='"+uuid+"'"+";"; preparedStatement = connection.prepareStatement(statementString); accounts = preparedStatement.executeQuery(); accounts.last(); System.out.println(accounts.getRow()); exists = accounts.getRow() == 1; connection.close(); }catch (SQLException ex){ System.out.println("An error occurred preparing a SQL-Statement. util.accountExists()"); } return exists; } public static boolean initializeAccount(String uuid,double amount){ try{ Connection connection = Database.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO Accounts(PlayerUUID, Balance) VALUES (?,?);"); preparedStatement.setString(1,uuid); preparedStatement.setDouble(2,amount); preparedStatement.execute(); connection.close(); return true; }catch (SQLException ex){ System.out.println("An error occurred preparing a SQL-Statement. GiveBank ln.18"); return false; } } public static double getDefaultBal(){ double defaultBal; try{ Connection connection = Database.getConnection(); PreparedStatement statement = connection.prepareStatement("SELECT * FROM ACCOUNTS WHERE PLAYERUUID='systemMoney';"); ResultSet resultSet = statement.executeQuery(); resultSet.last(); defaultBal = resultSet.getDouble(2); connection.close(); return defaultBal; }catch (SQLException ex){ defaultBal = -1; return defaultBal; } } public static boolean setAccount(String uuid,double amount){ try{ Connection connection = Database.getConnection(); PreparedStatement statement = connection.prepareStatement("UPDATE ACCOUNTS SET Balance=? WHERE PLAYERUUID='"+uuid+"'" + ";"); statement.setDouble(1,amount); statement.execute(); connection.close(); return true; }catch (SQLException ex){ System.out.println("An error occurred updating a Table. DatabaseUtil.setAccount()"); return false; } } public static boolean setDefault(double amount){ try{ Connection connection = Database.getConnection(); PreparedStatement statement = connection.prepareStatement("UPDATE ACCOUNTS SET BALANCE=? WHERE PLAYERUUID='systemMoney'"); statement.setDouble(1,amount); statement.execute(); connection.close(); return true; }catch (SQLException ex){ System.out.println("An error occurred updating a Table. DatabaseUtil.setDefault()"); return false; } } public static boolean updateAccount(String uuid,double amount){ try{ Connection connection = Database.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement("UPDATE ACCOUNTS SET Balance=? WHERE PLAYERUUID='"+uuid+"'"+";"); PreparedStatement account = connection.prepareStatement("SELECT * FROM ACCOUNTS WHERE PLAYERUUID='"+uuid+"'"+";"); /*Getting current values*/ ResultSet row = account.executeQuery(); row.last(); double current = row.getDouble(2); current+=amount; /*Updating values*/ preparedStatement.setDouble(1,current); preparedStatement.execute(); connection.close(); return true; }catch(SQLException ex){ System.out.println("An error occurred updating a Table. DatabaseUtil.updateAccount()"); return false; } } public static double getBalance(String uuid){ double value = -1; if(!accountExists(uuid)){ return -1; } try{ Connection connection = Database.getConnection(); PreparedStatement statement = connection.prepareStatement("SELECT * FROM ACCOUNTS WHERE PLAYERUUID='"+uuid+"'"+";"); ResultSet result = statement.executeQuery(); result.last(); value = result.getDouble(2); }catch (SQLException ex){ System.out.println("Exception caught while getting player balance!"); value = -3; } return value; } }