Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.gamerzpoland.youtube.data;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.Map;
- import java.util.UUID;
- import com.gamerzpoland.youtube.MysqlStats;
- import com.gamerzpoland.youtube.object.User;
- import com.gamerzpoland.youtube.object.UserUtils;
- import com.gamerzpoland.youtube.object.Utils;
- public class ConnectionManager {
- private static Connection conn;
- private static Map<String, String> settings;
- private synchronized static void openConnection() {
- if (isClosed()) {
- settings = FileManager.getMysqlSettings();
- try {
- conn = DriverManager.getConnection("jdbc:mysql://" + settings.get("host") + ":" + settings.get("port") + "/" + settings.get("name"), settings.get("user"), settings.get("password"));
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- private synchronized static void closeConnection() {
- if (!isClosed()) {
- try {
- conn.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- private static boolean isClosed() {
- if (conn == null) return true;
- try {
- if (conn.isClosed()) return true;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return false;
- }
- private void checkTable() {
- openConnection();
- StringBuilder sb = new StringBuilder();
- sb.append("create table if not exists ");
- sb.append(settings.get("table"));
- sb.append(" (");
- sb.append("id int not null auto_increment,");
- sb.append("uuid varchar(100) not null,");
- sb.append("nickname varchar(50) not null,");
- sb.append("rank varchar(50) not null,");
- sb.append("ip varchar(50) not null,");
- sb.append("money double not null,");
- sb.append("kills int not null,");
- sb.append("deaths int not null,");
- sb.append("primary key (id));");
- try {
- conn.createStatement().executeUpdate(sb.toString());
- Utils.colorConsoleBroadcast("Wykryto tabele `" + settings.get("table") + "`!");
- } catch (SQLException e) {
- e.printStackTrace();
- }
- closeConnection();
- }
- @SuppressWarnings("deprecation")
- private void saveData() {
- openConnection();
- for (User u : UserUtils.getUsersList()) {
- StringBuilder check = new StringBuilder();
- check.append("select * from ");
- check.append(settings.get("table"));
- check.append("` where nickname=");
- check.append('"');
- check.append(u.getName());
- check.append('"');
- try {
- ResultSet rs = conn.createStatement().executeQuery(check.toString());
- if (rs.next()) {
- //User juz jest w bazie danych
- StringBuilder sb = new StringBuilder();
- sb.append("update `");
- sb.append(settings.get("table"));
- sb.append("` set ip=");
- sb.append('"');
- sb.append(u.getIP());
- sb.append('"');
- sb.append(", money=");
- sb.append(MysqlStats.getEconomy().getBalance(u.getName()));
- sb.append(", kills=");
- sb.append(u.getKills());
- sb.append(", deaths=");
- sb.append(u.getDeaths());
- sb.append(" where nickname=");
- sb.append('"');
- sb.append(u.getName());
- sb.append('"');
- conn.createStatement().executeUpdate(sb.toString());
- System.out.println("zapisano dane " + u.getName());
- } else {
- StringBuilder sb = new StringBuilder();
- sb.append("insert into `");
- sb.append(settings.get("table"));
- sb.append("` values(");
- sb.append("null, ");
- sb.append('"');
- sb.append(u.getUuid().toString());
- sb.append('"');
- sb.append(", ");
- sb.append('"');
- sb.append(u.getName());
- sb.append('"');
- sb.append(", ");
- sb.append('"');
- sb.append(u.getGroup());
- sb.append('"');
- sb.append(", ");
- sb.append('"');
- sb.append(u.getIP());
- sb.append('"');
- sb.append(", ");
- sb.append(u.getMoney());
- sb.append(", ");
- sb.append(u.getKills());
- sb.append(", ");
- sb.append(u.getDeaths());
- sb.append(")");
- conn.createStatement().executeUpdate(sb.toString());
- System.out.println("zapisano dane: " + u.getName());
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- closeConnection();
- }
- private void loadData() {
- if (FileManager.isMysqlEnabled()) {
- openConnection();
- StringBuilder sb = new StringBuilder();
- sb.append("select * from `");
- sb.append(settings.get("table"));
- sb.append("`");
- try {
- ResultSet rs = conn.createStatement().executeQuery(sb.toString());
- while (rs.next()) {
- User u = new User();
- u.setName(rs.getString("nickname"));
- u.setUuid(UUID.fromString(rs.getString("uuid")));
- u.setGroup(rs.getString("rank"));
- u.setIP(rs.getString("ip"));
- u.setMoney(rs.getDouble("money"));
- u.setKills(rs.getInt("kills"));
- u.setDeaths(rs.getInt("deaths"));
- UserUtils.add(u);
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- Utils.colorConsoleBroadcast("Zaladowano dane uzytkownikow");
- closeConnection();
- }
- }
- public ConnectionManager() {
- if (FileManager.isMysqlEnabled()) {
- checkTable();
- loadData();
- UserUtils.loadOfflineData();
- saveData();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement