@@ -74,31 +74,24 @@ public static String getQueryToCreatePaginationIndex2(Start start) {
7474 + Config .getConfig (start ).getBulkImportUsersTable () + " (app_id, created_at DESC, id DESC)" ;
7575 }
7676
77- public static void insertBulkImportUsers (Start start , AppIdentifier appIdentifier , List <BulkImportUser > users )
77+ public static void insertBulkImportUsers_Transaction (Start start , Connection connection , AppIdentifier appIdentifier , List <BulkImportUser > users )
7878 throws SQLException , StorageQueryException {
79- StringBuilder queryBuilder = new StringBuilder (
80- "INSERT INTO " + Config .getConfig (start ).getBulkImportUsersTable () + " (id, app_id, raw_data, created_at, updated_at) VALUES " );
81-
82- int userCount = users .size ();
83-
84- for (int i = 0 ; i < userCount ; i ++) {
85- queryBuilder .append (" (?, ?, ?, ?, ?)" );
86-
87- if (i < userCount - 1 ) {
88- queryBuilder .append ("," );
89- }
79+ String queryBuilder = "INSERT INTO " + Config .getConfig (start ).getBulkImportUsersTable () +
80+ " (id, app_id, raw_data, created_at, updated_at) VALUES "
81+ + " (?, ?, ?, ?, ?)" ;
82+
83+ List <PreparedStatementValueSetter > valueSetters = new ArrayList <>();
84+ for (BulkImportUser user : users ) {
85+ valueSetters .add (pst -> {
86+ pst .setString (1 , user .id );
87+ pst .setString (2 , appIdentifier .getAppId ());
88+ pst .setString (3 , user .toRawDataForDbStorage ());
89+ pst .setLong (4 , System .currentTimeMillis ());
90+ pst .setLong (5 , System .currentTimeMillis ());
91+ });
9092 }
9193
92- update (start , queryBuilder .toString (), pst -> {
93- int parameterIndex = 1 ;
94- for (BulkImportUser user : users ) {
95- pst .setString (parameterIndex ++, user .id );
96- pst .setString (parameterIndex ++, appIdentifier .getAppId ());
97- pst .setString (parameterIndex ++, user .toRawDataForDbStorage ());
98- pst .setLong (parameterIndex ++, System .currentTimeMillis ());
99- pst .setLong (parameterIndex ++, System .currentTimeMillis ());
100- }
101- });
94+ executeBatch (connection , queryBuilder , valueSetters );
10295 }
10396
10497 public static void updateBulkImportUserStatus_Transaction (Start start , Connection con , AppIdentifier appIdentifier ,
@@ -178,18 +171,20 @@ public static List<BulkImportUser> getBulkImportUsersAndChangeStatusToProcessing
178171 }
179172
180173 String updateQuery = "UPDATE " + Config .getConfig (start ).getBulkImportUsersTable ()
181- + " SET status = ?, updated_at = ? WHERE app_id = ? AND id IN (" + Utils
182- .generateCommaSeperatedQuestionMarks (bulkImportUsers .size ()) + ")" ;
183-
184- update (sqlCon , updateQuery , pst -> {
185- int index = 1 ;
186- pst .setString (index ++, BULK_IMPORT_USER_STATUS .PROCESSING .toString ());
187- pst .setLong (index ++, System .currentTimeMillis ());
188- pst .setString (index ++, appIdentifier .getAppId ());
189- for (BulkImportUser user : bulkImportUsers ) {
190- pst .setObject (index ++, user .id );
191- }
192- });
174+ + " SET status = ?, updated_at = ? WHERE app_id = ? AND id = ?" ;
175+
176+ List <PreparedStatementValueSetter > updateSetters = new ArrayList <>();
177+ for (BulkImportUser user : bulkImportUsers ){
178+ updateSetters .add (pst -> {
179+ pst .setString (1 , BULK_IMPORT_USER_STATUS .PROCESSING .toString ());
180+ pst .setLong (2 , System .currentTimeMillis ());
181+ pst .setString (3 , appIdentifier .getAppId ());
182+ pst .setObject (4 , user .id );
183+ });
184+ }
185+
186+ executeBatch (sqlCon , updateQuery , updateSetters );
187+
193188 return bulkImportUsers ;
194189 } catch (SQLException throwables ) {
195190 throw new StorageTransactionLogicException (throwables );
0 commit comments