Advertisement
Nik

Untitled

Nik
Oct 25th, 2012
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 3.12 KB | None | 0 0
  1. Index: IdFactory.java
  2. ===================================================================
  3. --- IdFactory.java  (revision 5685)
  4. +++ IdFactory.java  (working copy)
  5. @@ -105,6 +105,17 @@
  6.         "SELECT object_id   FROM itemsonground        WHERE object_id >= ?   AND object_id < ?"
  7.     };
  8.    
  9. +   //@formatter:off
  10. +   private static final String[][] ID_EXTRACTS =
  11. +   {
  12. +       {"characters","charId"},
  13. +       {"items","object_id"},
  14. +       {"clan_data","clan_id"},
  15. +       {"itemsonground","object_id"},
  16. +       {"messages","messageId"}
  17. +   };
  18. +   //@formatter:on
  19. +  
  20.     private static final String[] TIMESTAMPS_CLEAN =
  21.     {
  22.         "DELETE FROM character_instance_time WHERE time <= ?",
  23. @@ -331,55 +342,25 @@
  24.             Statement s = con.createStatement())
  25.         {
  26.             final TIntArrayList temp = new TIntArrayList();
  27. -           try (ResultSet rs = s.executeQuery("SELECT COUNT(*) FROM characters"))
  28. -           {
  29. -               rs.next();
  30. -               temp.ensureCapacity(rs.getInt(1));
  31. -           }
  32. -          
  33. -           try (ResultSet rs = s.executeQuery("SELECT charId FROM characters"))
  34. -           {
  35. -               while (rs.next())
  36. -               {
  37. -                   temp.add(rs.getInt(1));
  38. -               }
  39. -           }
  40.            
  41. -           try (ResultSet rs = s.executeQuery("SELECT COUNT(*) FROM items"))
  42. -           {
  43. -               rs.next();
  44. -               temp.ensureCapacity(temp.size() + rs.getInt(1));
  45. -           }
  46. +           String ensureCapacityQuery = "SELECT ";
  47. +           String extractUsedObjectIdsQuery = "";
  48.            
  49. -           try (ResultSet rs = s.executeQuery("SELECT object_id FROM items"))
  50. +           for (String[] tblClmn : ID_EXTRACTS)
  51.             {
  52. -               while (rs.next())
  53. -               {
  54. -                   temp.add(rs.getInt(1));
  55. -               }
  56. +               ensureCapacityQuery += "(SELECT COUNT(*) FROM " + tblClmn[0] + ") + ";
  57. +               extractUsedObjectIdsQuery += "SELECT " + tblClmn[1] + " FROM " + tblClmn[0] + " UNION ";
  58.             }
  59. +           ensureCapacityQuery = ensureCapacityQuery.substring(0, ensureCapacityQuery.length() - 3); // Remove the last " + "
  60. +           extractUsedObjectIdsQuery = ensureCapacityQuery.substring(0, extractUsedObjectIdsQuery.length() - 7); // Remove the last " UNION "
  61.            
  62. -           try (ResultSet rs = s.executeQuery("SELECT COUNT(*) FROM clan_data"))
  63. +           try (ResultSet rs = s.executeQuery(ensureCapacityQuery))
  64.             {
  65.                 rs.next();
  66. -               temp.ensureCapacity(temp.size() + rs.getInt(1));
  67. -           }
  68. -          
  69. -           try (ResultSet rs = s.executeQuery("SELECT clan_id FROM clan_data"))
  70. -           {
  71. -               while (rs.next())
  72. -               {
  73. -                   temp.add(rs.getInt(1));
  74. -               }
  75. -           }
  76. -          
  77. -           try (ResultSet rs = s.executeQuery("SELECT COUNT(*) FROM itemsonground"))
  78. -           {
  79. -               rs.next();
  80. -               temp.ensureCapacity(temp.size() + rs.getInt(1));
  81. +               temp.ensureCapacity(rs.getInt(1));
  82.             }
  83.            
  84. -           try (ResultSet rs = s.executeQuery("SELECT object_id FROM itemsonground"))
  85. +           try (ResultSet rs = s.executeQuery(extractUsedObjectIdsQuery))
  86.             {
  87.                 while (rs.next())
  88.                 {
  89. @@ -387,19 +368,6 @@
  90.                 }
  91.             }
  92.            
  93. -           try (ResultSet rs = s.executeQuery("SELECT COUNT(*) FROM messages"))
  94. -           {
  95. -               rs.next();
  96. -               temp.ensureCapacity(temp.size() + rs.getInt(1));
  97. -           }
  98. -          
  99. -           try (ResultSet rs = s.executeQuery("SELECT messageId FROM messages"))
  100. -           {
  101. -               while (rs.next())
  102. -               {
  103. -                   temp.add(rs.getInt(1));
  104. -               }
  105. -           }
  106.             temp.sort();
  107.             return temp.toArray();
  108.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement