Guest User

Untitled

a guest
Oct 16th, 2018
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.16 KB | None | 0 0
  1. import java.sql.Connection;
  2. import java.sql.PreparedStatement;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.util.ArrayList;
  6.  
  7. import actyondev.commons.dbcp.BasicDataSource;
  8. import actyondev.commons.dbutils.DbUtils;
  9.  
  10.  
  11. public class DataBaseTest {
  12.  
  13. public static void launch()
  14. {
  15. ArrayList<Integer> charId = new ArrayList<Integer>();
  16. Connection con = null;
  17. PreparedStatement statementChar = null;
  18. PreparedStatement statementItem = null;
  19. PreparedStatement statementMail = null;
  20. PreparedStatement statementItemDelete = null;
  21. PreparedStatement statementMailDelete = null;
  22. PreparedStatement statementMailAttachments = null;
  23. PreparedStatement statementMailAttachmentsDelete = null;
  24. int countItems = 0;
  25. int countMail = 0;
  26. int countMailAttachments = 0;
  27. int countConItem = 0;
  28. boolean doNext = true;
  29.  
  30. try
  31. {
  32. //con = new BasicDataSource("com.mysql.jdbc.Driver", "jdbc:mysql://127.0.0.1/omega10x", "root", "", 10, 10, 60, 60, false).getConnection(null);
  33. con = new BasicDataSource("com.mysql.jdbc.Driver", "jdbc:mysql://37.59.18.67/h5test", "omegateam", "lin&team&omega&sql", 10, 10, 60, 60, false).getConnection(null);
  34.  
  35. //For Clean mail Table
  36. statementMail = con.prepareStatement("SELECT sender_id FROM mail");
  37. ResultSet rsetMail = statementMail.executeQuery();
  38.  
  39. while(rsetMail.next())
  40. {
  41. statementChar = con.prepareStatement("SELECT obj_Id FROM characters WHERE obj_Id = '" + rsetMail.getInt(1) + "'");
  42. ResultSet rsetChar = statementChar.executeQuery();
  43. if(!rsetChar.next())
  44. {
  45. statementMailDelete = con.prepareStatement("DELETE FROM mail WHERE sender_id='" + rsetMail.getInt(1) + "'");
  46. int i;
  47. if((i = statementMailDelete.executeUpdate()) >= 1)
  48. countMail += i;
  49. }
  50. }
  51. DbUtils.closeQuietly(con, statementMail);
  52. DbUtils.closeQuietly(con, statementChar);
  53. DbUtils.closeQuietly(con, statementMailDelete);
  54.  
  55. con = new BasicDataSource("com.mysql.jdbc.Driver", "jdbc:mysql://127.0.0.1/omega10x", "root", "", 10, 10, 60, 60, false).getConnection(null);
  56. statementMail = con.prepareStatement("SELECT receiver_id FROM mail");
  57. rsetMail = statementMail.executeQuery();
  58.  
  59. while(rsetMail.next())
  60. {
  61. statementChar = con.prepareStatement("SELECT obj_Id FROM characters WHERE obj_Id = '" + rsetMail.getInt(1) + "'");
  62. ResultSet rsetChar = statementChar.executeQuery();
  63. if(!rsetChar.next())
  64. {
  65. statementMailDelete = con.prepareStatement("DELETE FROM mail WHERE receiver_id='" + rsetMail.getInt(1) + "'");
  66. int i;
  67. if((i = statementMailDelete.executeUpdate()) >= 1)
  68. countMail += i;
  69. }
  70. }
  71. DbUtils.closeQuietly(con, statementMail);
  72. DbUtils.closeQuietly(con, statementChar);
  73. DbUtils.closeQuietly(con, statementMailDelete);
  74.  
  75. // For Clean mail_attachments Table
  76. con = new BasicDataSource("com.mysql.jdbc.Driver", "jdbc:mysql://127.0.0.1/omega10x", "root", "", 10, 10, 60, 60, false).getConnection(null);
  77. statementMailAttachments = con.prepareStatement("SELECT message_id FROM mail_attachments");
  78. ResultSet rsetMailAttachments = statementMailAttachments.executeQuery();
  79.  
  80. while(rsetMailAttachments.next())
  81. {
  82. statementMail = con.prepareStatement("SELECT message_id FROM mail");
  83. rsetMail = statementMail.executeQuery();
  84. if(!rsetMail.next())
  85. {
  86. statementMailAttachmentsDelete = con.prepareStatement("DELETE FROM mail_attachments WHERE message_id='" + rsetMailAttachments.getInt(1) + "'");
  87. int i;
  88. if((i = statementMailAttachmentsDelete.executeUpdate()) >= 1)
  89. countMailAttachments += i;
  90. }
  91. }
  92. DbUtils.closeQuietly(con, statementMailAttachments);
  93. DbUtils.closeQuietly(con, statementMail);
  94. DbUtils.closeQuietly(con, statementMailAttachmentsDelete);
  95.  
  96. // For Clean items Table
  97. con = new BasicDataSource("com.mysql.jdbc.Driver", "jdbc:mysql://127.0.0.1/omega10x", "root", "", 10, 10, 60, 60, false).getConnection(null);
  98. statementChar = con.prepareStatement("SELECT obj_Id FROM characters");
  99. ResultSet rsetChar = statementChar.executeQuery();
  100.  
  101. while(rsetChar.next())
  102. {
  103. if(!charId.contains(rsetChar.getInt(1)))
  104. charId.add(rsetChar.getInt(1));
  105. }
  106. DbUtils.closeQuietly(con, statementChar);
  107.  
  108. while(doNext)
  109. {
  110. con = new BasicDataSource("com.mysql.jdbc.Driver", "jdbc:mysql://127.0.0.1/omega10x", "root", "", 10, 10, 60, 60, false).getConnection(null);
  111. statementItem = con.prepareStatement("SELECT owner_id FROM items");
  112. ResultSet rsetItems = statementItem.executeQuery();
  113.  
  114. if(!rsetItems.next())
  115. {
  116. System.out.println("WTF !!! on stop deja?");
  117. doNext = false;
  118. }
  119. Boolean continu = true;
  120. while(rsetItems.next() && continu)
  121. {
  122. countConItem++;
  123. if(!charId.contains(rsetItems.getInt(1)))
  124. {
  125. statementItemDelete = con.prepareStatement("DELETE FROM items WHERE owner_id='" + rsetItems.getInt(1) + "'");
  126. int i;
  127. if((i = statementItemDelete.executeUpdate()) >= 1)
  128. countItems += i;
  129. }
  130. if(countConItem >= 15000)
  131. {
  132. countConItem = 0;
  133. continu = false;
  134. }
  135. }
  136.  
  137. DbUtils.closeQuietly(con, statementItem);
  138. DbUtils.closeQuietly(con, statementItemDelete);
  139. System.out.println("En cours " + countItems + " lignes delete de la table items");
  140. Thread.sleep(3000);
  141. }
  142.  
  143. System.out.println("On a delete " + countItems + " lignes de la table items");
  144. System.out.println("On a delete " + countMail + " lignes de la table mails");
  145. System.out.println("On a delete " + countMailAttachments + " lignes de la table mail_attachments");
  146. }
  147. catch(SQLException e)
  148. {
  149. System.out.println("fail: " + e);
  150. }
  151. catch(Exception e)
  152. {
  153. System.out.println("fail: " + e);
  154. }
  155. finally
  156. {
  157. DbUtils.closeQuietly(con, statementChar);
  158. DbUtils.closeQuietly(con, statementItem);
  159. DbUtils.closeQuietly(con, statementMail);
  160. DbUtils.closeQuietly(con, statementItemDelete);
  161. DbUtils.closeQuietly(con, statementMailDelete);
  162. DbUtils.closeQuietly(con, statementMailAttachments);
  163. DbUtils.closeQuietly(con, statementMailAttachmentsDelete);
  164. }
  165. }
  166. }
Add Comment
Please, Sign In to add comment