Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.26 KB | None | 0 0
  1. package com.gamerzpoland.youtube.data;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.util.Map;
  8. import java.util.UUID;
  9.  
  10. import com.gamerzpoland.youtube.MysqlStats;
  11. import com.gamerzpoland.youtube.object.User;
  12. import com.gamerzpoland.youtube.object.UserUtils;
  13. import com.gamerzpoland.youtube.object.Utils;
  14.  
  15. public class ConnectionManager {
  16.    
  17.     private static Connection conn;
  18.     private static Map<String, String> settings;
  19.    
  20.     private synchronized static void openConnection() {
  21.         if (isClosed()) {
  22.             settings = FileManager.getMysqlSettings();
  23.             try {
  24.                 conn = DriverManager.getConnection("jdbc:mysql://" + settings.get("host") + ":" + settings.get("port") + "/" + settings.get("name"), settings.get("user"), settings.get("password"));
  25.             } catch (SQLException e) {
  26.                 e.printStackTrace();
  27.             }
  28.         }
  29.     }
  30.    
  31.     private synchronized static void closeConnection() {
  32.         if (!isClosed()) {
  33.             try {
  34.                 conn.close();
  35.             } catch (SQLException e) {
  36.                 e.printStackTrace();
  37.             }
  38.         }  
  39.     }
  40.    
  41.     private static boolean isClosed() {
  42.         if (conn == null) return true;
  43.         try {
  44.             if (conn.isClosed()) return true;
  45.         } catch (SQLException e) {
  46.             e.printStackTrace();
  47.         }
  48.        
  49.         return false;
  50.     }
  51.    
  52.     private void checkTable() {
  53.         openConnection();
  54.        
  55.         StringBuilder sb = new StringBuilder();
  56.         sb.append("create table if not exists ");
  57.         sb.append(settings.get("table"));
  58.         sb.append(" (");
  59.         sb.append("id int not null auto_increment,");
  60.         sb.append("uuid varchar(100) not null,");
  61.         sb.append("nickname varchar(50) not null,");
  62.         sb.append("rank varchar(50) not null,");
  63.         sb.append("ip varchar(50) not null,");
  64.         sb.append("money double not null,");
  65.         sb.append("kills int not null,");
  66.         sb.append("deaths int not null,");
  67.         sb.append("primary key (id));");
  68.        
  69.         try {
  70.             conn.createStatement().executeUpdate(sb.toString());
  71.             Utils.colorConsoleBroadcast("Wykryto tabele `" + settings.get("table") + "`!");
  72.         } catch (SQLException e) {
  73.             e.printStackTrace();
  74.         }
  75.        
  76.         closeConnection();
  77.     }
  78.    
  79.     @SuppressWarnings("deprecation")
  80.     private void saveData() {
  81.         openConnection();
  82.        
  83.         for (User u : UserUtils.getUsersList()) {
  84.            
  85.             StringBuilder check = new StringBuilder();
  86.             check.append("select * from ");
  87.             check.append(settings.get("table"));
  88.             check.append("` where nickname=");
  89.             check.append('"');
  90.             check.append(u.getName());
  91.             check.append('"');
  92.            
  93.             try {
  94.                 ResultSet rs = conn.createStatement().executeQuery(check.toString());
  95.                 if (rs.next()) {
  96.                    
  97.                     //User juz jest w bazie danych
  98.                     StringBuilder sb = new StringBuilder();
  99.                     sb.append("update `");
  100.                     sb.append(settings.get("table"));
  101.                     sb.append("` set ip=");
  102.                     sb.append('"');
  103.                     sb.append(u.getIP());
  104.                     sb.append('"');
  105.                     sb.append(", money=");
  106.                     sb.append(MysqlStats.getEconomy().getBalance(u.getName()));
  107.                     sb.append(", kills=");
  108.                     sb.append(u.getKills());
  109.                     sb.append(", deaths=");
  110.                     sb.append(u.getDeaths());
  111.                     sb.append(" where nickname=");
  112.                     sb.append('"');
  113.                     sb.append(u.getName());
  114.                     sb.append('"');
  115.                    
  116.                     conn.createStatement().executeUpdate(sb.toString());
  117.                     System.out.println("zapisano dane " + u.getName());
  118.                    
  119.                 } else {
  120.                    
  121.                     StringBuilder sb = new StringBuilder();
  122.                     sb.append("insert into `");
  123.                     sb.append(settings.get("table"));
  124.                     sb.append("` values(");
  125.                     sb.append("null, ");
  126.                     sb.append('"');
  127.                     sb.append(u.getUuid().toString());
  128.                     sb.append('"');
  129.                     sb.append(", ");
  130.                     sb.append('"');
  131.                     sb.append(u.getName());
  132.                     sb.append('"');
  133.                     sb.append(", ");
  134.                     sb.append('"');
  135.                     sb.append(u.getGroup());
  136.                     sb.append('"');
  137.                     sb.append(", ");
  138.                     sb.append('"');
  139.                     sb.append(u.getIP());
  140.                     sb.append('"');
  141.                     sb.append(", ");
  142.                     sb.append(u.getMoney());
  143.                     sb.append(", ");
  144.                     sb.append(u.getKills());
  145.                     sb.append(", ");
  146.                     sb.append(u.getDeaths());
  147.                     sb.append(")");
  148.                    
  149.                     conn.createStatement().executeUpdate(sb.toString());
  150.                     System.out.println("zapisano dane: " + u.getName());
  151.  
  152.                 }
  153.             } catch (SQLException e) {
  154.                 e.printStackTrace();
  155.             }
  156.            
  157.         }
  158.        
  159.         closeConnection();
  160.     }  
  161.    
  162.     private void loadData() {
  163.         if (FileManager.isMysqlEnabled()) {
  164.             openConnection();
  165.             StringBuilder sb = new StringBuilder();
  166.             sb.append("select * from `");
  167.             sb.append(settings.get("table"));
  168.             sb.append("`");
  169.            
  170.             try {
  171.                 ResultSet rs = conn.createStatement().executeQuery(sb.toString());
  172.                 while (rs.next()) {
  173.                     User u = new User();
  174.                    
  175.                     u.setName(rs.getString("nickname"));
  176.                     u.setUuid(UUID.fromString(rs.getString("uuid")));
  177.                     u.setGroup(rs.getString("rank"));
  178.                     u.setIP(rs.getString("ip"));
  179.                     u.setMoney(rs.getDouble("money"));
  180.                     u.setKills(rs.getInt("kills"));
  181.                     u.setDeaths(rs.getInt("deaths"));
  182.                    
  183.                     UserUtils.add(u);
  184.                    
  185.                 }
  186.             } catch (SQLException e) {
  187.                 e.printStackTrace();
  188.             }
  189.            
  190.             Utils.colorConsoleBroadcast("Zaladowano dane uzytkownikow");
  191.             closeConnection();
  192.         }
  193.     }
  194.    
  195.     public ConnectionManager() {
  196.         if (FileManager.isMysqlEnabled()) {
  197.             checkTable();
  198.             loadData();
  199.             UserUtils.loadOfflineData();
  200.             saveData();
  201.         }
  202.     }
  203.    
  204. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement