Advertisement
Guest User

Untitled

a guest
Jul 13th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.56 KB | None | 0 0
  1. package cn.BlockMC.Zao_hon;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.util.Calendar;
  9. import org.bukkit.entity.Player;
  10. import org.bukkit.scheduler.BukkitRunnable;
  11.  
  12. public class Mysql {
  13. private static final String CREATE_USERS_TABLE = "CREATE TABLE Users (Name Char(15),UUID CHAR(40),Password CHAR(30),FirstLogin CHAR(30),LastLogin CHAR(30),IP CHAR(30))";
  14. private static final String INSERCT_NEW_USER = "INSERT INTO Users VALUES(?,?,?,?,?,?)";
  15. private static final String UPDATE_USER = "UPDATE Users Set LastLogin = ?,IP= ? WHERE UUID = ?";
  16. private static final String SELECT_USER_PASSWORD = "SELECT Password FROM Users WHERE UUID = ?";
  17. private static final String SELECT_USERS_FROM_IP = "SELECT UUID FROM Users WHERE IP = ?";
  18. private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
  19. private String url;
  20. private Connection conn;
  21.  
  22. private static Mysql mysql;
  23.  
  24. public static Mysql get() {
  25. if (mysql == null)
  26. mysql = new Mysql();
  27. return mysql;
  28. }
  29.  
  30. public void updatePlayer(Player p) {
  31. try {
  32. PreparedStatement s = conn.prepareStatement(UPDATE_USER);
  33. s.setString(1, getPresentTime());
  34. s.setString(2, p.getAddress().getAddress().getHostName());
  35. s.setString(3, p.getUniqueId().toString());
  36. s.execute();
  37. } catch (SQLException e) {
  38. e.printStackTrace();
  39. }
  40.  
  41. }
  42.  
  43. public void playerRegisted(Player p, String password) {
  44. try {
  45. String name = p.getName();
  46. String uuid = p.getUniqueId().toString();
  47. String presenttime = getPresentTime();
  48. String ip = p.getAddress().getAddress().getHostName();
  49. PreparedStatement s = conn.prepareStatement(INSERCT_NEW_USER);
  50. s.setString(1, name);
  51. s.setString(2, uuid);
  52. s.setString(3, password);
  53. s.setString(4, presenttime);
  54. s.setString(5, presenttime);
  55. s.setString(6, ip);
  56. s.execute();
  57. } catch (SQLException e) {
  58. e.printStackTrace();
  59. }
  60. }
  61.  
  62. public int getUsersNumber(String ip) {
  63. try {
  64. PreparedStatement s = conn.prepareStatement(SELECT_USERS_FROM_IP);
  65. s.setString(1, ip);
  66. ResultSet rs = s.executeQuery();
  67. return rs.getFetchSize();
  68. } catch (SQLException e) {
  69. e.printStackTrace();
  70. }
  71. return 0;
  72. }
  73.  
  74. public String selectPlayerPassword(Player p) {
  75. try {
  76. PreparedStatement s = conn.prepareStatement(SELECT_USER_PASSWORD);
  77. s.setString(1, p.getUniqueId().toString());
  78. ResultSet rs = s.executeQuery();
  79. if (rs.next()) {
  80. return rs.getString(1);
  81. }
  82. } catch (SQLException e) {
  83. e.printStackTrace();
  84. }
  85.  
  86. return "";
  87. }
  88.  
  89. public void load(AnvilLogin plugin) {
  90. try {
  91. Class.forName(JDBC_DRIVER);
  92. } catch (ClassNotFoundException e) {
  93. plugin.getLogger().info("JDBC驱动加载失败");
  94. }
  95. try {
  96. String host = plugin.getConfig().getString("MYSQL.Host");
  97. String port = plugin.getConfig().getString("MYSQL.Port");
  98. String database = plugin.getConfig().getString("MYSQL.DatabaseName");
  99. String name = plugin.getConfig().getString("MYSQL.UserName");
  100. String password = plugin.getConfig().getString("MYSQL.Password");
  101.  
  102. // url = "jdbc:mysql://" + host + ":" + port + "/" + database + "?characterEncoding=utf8&useSSL=true";
  103.  
  104. conn = DriverManager.getConnection(
  105. "jdbc:mysql://" + host + ":" + port + "/" + database + "?characterEncoding=utf8&useSSL=true", name,
  106. password);
  107. try {
  108. conn.prepareStatement(CREATE_USERS_TABLE).execute();
  109. } catch (SQLException e) {
  110. }
  111.  
  112. conn.prepareStatement(INSERCT_NEW_USER);
  113. conn.prepareStatement(UPDATE_USER);
  114. conn.prepareStatement(SELECT_USERS_FROM_IP);
  115. conn.prepareStatement(SELECT_USER_PASSWORD);
  116. plugin.getLogger().info("加载数据库成功");
  117. } catch (SQLException e) {
  118. plugin.getLogger().info("加载数据库失败..");
  119. }
  120.  
  121. }
  122. // public Connection getConnection(){
  123. // return conn = DriverManager.getConnection(
  124. // "jdbc:mysql://" + host + ":" + port + "/" + database + "?characterEncoding=utf8&useSSL=true", name,
  125. // password);
  126. // }
  127.  
  128. public void close() {
  129. try {
  130. conn.close();
  131. } catch (SQLException e) {
  132. e.printStackTrace();
  133. }
  134. }
  135.  
  136.  
  137. private String getPresentTime() {
  138. Calendar c = Calendar.getInstance();
  139. int year = c.get(Calendar.YEAR);
  140. int month = c.get(Calendar.MONTH);
  141. int day = c.get(Calendar.DAY_OF_MONTH);
  142. int hour = c.get(Calendar.HOUR_OF_DAY);
  143. int minute = c.get(Calendar.MINUTE);
  144. int second = c.get(Calendar.SECOND);
  145. return year + "." + month + "." + day + "-" + hour + ":" + minute + ":" + second;
  146. }
  147.  
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement