Advertisement
Guest User

Untitled

a guest
May 4th, 2019
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.65 KB | None | 0 0
  1. import java.sql.*;
  2. import java.util.*;
  3.  
  4. public class MySQL
  5. {
  6. private String host;
  7. private int port;
  8. private String user;
  9. private String pass;
  10. private String database;
  11. private String url;
  12. private Connection conn;
  13.  
  14. public MySQL(final String host, final int port, final String user, final String pass, final String database) {
  15. this.host = host;
  16. this.port = port;
  17. this.user = user;
  18. this.pass = pass;
  19. this.database = database;
  20. this.buildURL();
  21. this.connect();
  22. }
  23.  
  24. public void buildURL() {
  25. this.url = "jdbc:mysql://" + this.host + ":" + this.port + "/" + this.database + "?autoReconnect=true";
  26. }
  27.  
  28. public boolean isConnected() {
  29. return this.conn != null;
  30. }
  31.  
  32. public boolean connect() {
  33. try {
  34. Utils.sendMsgToConsole((Plugin)Main.getInst(), "&aUsing url to connect: " + this.url);
  35. this.conn = DriverManager.getConnection(this.url, this.user, this.pass);
  36. Utils.sendMsgToConsole((Plugin)Main.getInst(), "&aPolaczono z baza danych MySQL!");
  37. return true;
  38. }
  39. catch (SQLException e) {
  40. Utils.sendMsgToConsole((Plugin)Main.getInst(), "&c" + e.getMessage());
  41. return false;
  42. }
  43. }
  44.  
  45. public void createUsersFromMySQL() {
  46. try {
  47. int i = 0;
  48. final ResultSet rs = this.query("SELECT * FROM `tops`");
  49. while (rs.next()) {
  50. final UUID uuid = UUID.fromString(rs.getString("uuid"));
  51. final String name = rs.getString("name");
  52. final int kills = rs.getInt("kills");
  53. final int kox = rs.getInt("kox");
  54. final int ref = rs.getInt("ref");
  55. final int breakedBlocks = rs.getInt("breakedBlocks");
  56. final int placedBlocks = rs.getInt("placedBlocks");
  57. final int obsidian = rs.getInt("obsidian");
  58. final long time = rs.getLong("time");
  59. final int money = rs.getInt("money");
  60. UserManager.createUser(uuid, name, kills, kox, ref, breakedBlocks, placedBlocks, obsidian, time, money);
  61. ++i;
  62. }
  63. Utils.sendMsgToConsole((Plugin)Main.getInst(), "&aZaladowany: &c" + i + " &agraczy z bazy danych!");
  64. }
  65. catch (SQLException e) {
  66. Utils.sendMsgToConsole((Plugin)Main.getInst(), e.getMessage());
  67. }
  68. }
  69.  
  70. public void send(final String sql) {
  71. if (!this.isConnected()) {
  72. this.connect();
  73. }
  74. PreparedStatement ps;
  75. final Thread t = new Thread(() -> {
  76. try {
  77. ps = this.conn.prepareStatement(sql);
  78. ps.execute();
  79. }
  80. catch (SQLException e) {
  81. Utils.sendMsgToConsole((Plugin)Main.getInst(), "&c" + e.getMessage());
  82. e.printStackTrace();
  83. }
  84. return;
  85. });
  86. t.start();
  87. }
  88.  
  89. public ResultSet query(final String sql) {
  90. if (!this.isConnected()) {
  91. this.connect();
  92. }
  93. try {
  94. return this.conn.createStatement().executeQuery(sql);
  95. }
  96. catch (SQLException e) {
  97. Utils.sendMsgToConsole((Plugin)Main.getInst(), "&c" + e.getMessage());
  98. return null;
  99. }
  100. }
  101.  
  102. public Object get(final String tableName, final String columnName, final UUID uuid) {
  103. try {
  104. final PreparedStatement ps = this.conn.prepareStatement("SELECT * FROM `" + tableName + "` WHERE uuid = ?");
  105. ps.setString(1, uuid.toString());
  106. final ResultSet rs = ps.executeQuery();
  107. rs.last();
  108. if (rs.getRow() != 0) {
  109. rs.first();
  110. return rs.getObject(columnName);
  111. }
  112. }
  113. catch (SQLException e) {
  114. Utils.sendMsgToConsole((Plugin)Main.getInst(), "&c" + e.getMessage());
  115. }
  116. return null;
  117. }
  118.  
  119. public void set(final String tableName, final String columnName, final Object newValue, final UUID uuid) {
  120. final Thread t = new Thread() {
  121. @Override
  122. public void run() {
  123. try {
  124. final PreparedStatement ps = MySQL.this.conn.prepareStatement("UPDATE `" + tableName + "` SET `" + columnName + "`='" + newValue + "' WHERE uuid = ?");
  125. ps.setString(1, uuid.toString());
  126. ps.executeUpdate();
  127. ps.close();
  128. }
  129. catch (SQLException e) {
  130. e.printStackTrace();
  131. }
  132. }
  133. };
  134. t.start();
  135. }
  136.  
  137. public List<User> getTop(final TopType type) {
  138. final List<User> users = new ArrayList<User>();
  139. try {
  140. final PreparedStatement ps = this.conn.prepareStatement("SELECT * FROM `tops` ORDER BY " + TopType.getMySQLType(type) + " DESC LIMIT 10;");
  141. final ResultSet rs = ps.executeQuery();
  142. while (rs.next()) {
  143. users.add(UserManager.getUser(rs.getString("name")));
  144. }
  145. }
  146. catch (SQLException e) {
  147. Utils.sendMsgToConsole((Plugin)Main.getInst(), "&c" + e.getMessage());
  148. }
  149. return users;
  150. }
  151.  
  152. public void saveDefaultData(final User u) {
  153. this.send("INSERT INTO `tops` (uuid, name, kills, kox, ref, breakedBlocks, placedBlocks, obsidian, time, money) VALUES ('" + u.getUuid() + "', '" + u.getName() + "', '0', '0', '0', '0', '0', '0', '0', '0')");
  154. }
  155. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement