From 4513d78ba5241cd5273bfdb42b381ad7ce47140b Mon Sep 17 00:00:00 2001 From: Mahmoud Ben Hassine Date: Fri, 3 Mar 2023 06:31:25 +0100 Subject: [PATCH] Use text blocks for SQL queries This commit replaces String concatenation with text blocks for SQL queries in various DAOs. This improves the readability of the code. NB: Not all SQL queries in the code base were changed to use text blocks, but only those where readability became an issue. --- .../dao/JdbcExecutionContextDao.java | 52 ++++++++---- .../repository/dao/JdbcJobExecutionDao.java | 83 ++++++++++++++----- .../repository/dao/JdbcJobInstanceDao.java | 70 ++++++++++++---- .../repository/dao/JdbcStepExecutionDao.java | 70 +++++++++------- 4 files changed, 191 insertions(+), 84 deletions(-) diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcExecutionContextDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcExecutionContextDao.java index 6eda7f146..86972ec26 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcExecutionContextDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcExecutionContextDao.java @@ -59,29 +59,49 @@ import org.springframework.util.Assert; */ public class JdbcExecutionContextDao extends AbstractJdbcBatchMetadataDao implements ExecutionContextDao { - private static final String FIND_JOB_EXECUTION_CONTEXT = "SELECT SHORT_CONTEXT, SERIALIZED_CONTEXT " - + "FROM %PREFIX%JOB_EXECUTION_CONTEXT WHERE JOB_EXECUTION_ID = ?"; + private static final String FIND_JOB_EXECUTION_CONTEXT = """ + SELECT SHORT_CONTEXT, SERIALIZED_CONTEXT + FROM %PREFIX%JOB_EXECUTION_CONTEXT + WHERE JOB_EXECUTION_ID = ? + """; - private static final String INSERT_JOB_EXECUTION_CONTEXT = "INSERT INTO %PREFIX%JOB_EXECUTION_CONTEXT " - + "(SHORT_CONTEXT, SERIALIZED_CONTEXT, JOB_EXECUTION_ID) " + "VALUES(?, ?, ?)"; + private static final String INSERT_JOB_EXECUTION_CONTEXT = """ + INSERT INTO %PREFIX%JOB_EXECUTION_CONTEXT (SHORT_CONTEXT, SERIALIZED_CONTEXT, JOB_EXECUTION_ID) + VALUES(?, ?, ?) + """; - private static final String UPDATE_JOB_EXECUTION_CONTEXT = "UPDATE %PREFIX%JOB_EXECUTION_CONTEXT " - + "SET SHORT_CONTEXT = ?, SERIALIZED_CONTEXT = ? " + "WHERE JOB_EXECUTION_ID = ?"; + private static final String UPDATE_JOB_EXECUTION_CONTEXT = """ + UPDATE %PREFIX%JOB_EXECUTION_CONTEXT + SET SHORT_CONTEXT = ?, SERIALIZED_CONTEXT = ? + WHERE JOB_EXECUTION_ID = ? + """; - private static final String FIND_STEP_EXECUTION_CONTEXT = "SELECT SHORT_CONTEXT, SERIALIZED_CONTEXT " - + "FROM %PREFIX%STEP_EXECUTION_CONTEXT WHERE STEP_EXECUTION_ID = ?"; + private static final String FIND_STEP_EXECUTION_CONTEXT = """ + SELECT SHORT_CONTEXT, SERIALIZED_CONTEXT + FROM %PREFIX%STEP_EXECUTION_CONTEXT + WHERE STEP_EXECUTION_ID = ? + """; - private static final String INSERT_STEP_EXECUTION_CONTEXT = "INSERT INTO %PREFIX%STEP_EXECUTION_CONTEXT " - + "(SHORT_CONTEXT, SERIALIZED_CONTEXT, STEP_EXECUTION_ID) " + "VALUES(?, ?, ?)"; + private static final String INSERT_STEP_EXECUTION_CONTEXT = """ + INSERT INTO %PREFIX%STEP_EXECUTION_CONTEXT (SHORT_CONTEXT, SERIALIZED_CONTEXT, STEP_EXECUTION_ID) + VALUES(?, ?, ?) + """; - private static final String UPDATE_STEP_EXECUTION_CONTEXT = "UPDATE %PREFIX%STEP_EXECUTION_CONTEXT " - + "SET SHORT_CONTEXT = ?, SERIALIZED_CONTEXT = ? " + "WHERE STEP_EXECUTION_ID = ?"; + private static final String UPDATE_STEP_EXECUTION_CONTEXT = """ + UPDATE %PREFIX%STEP_EXECUTION_CONTEXT + SET SHORT_CONTEXT = ?, SERIALIZED_CONTEXT = ? + WHERE STEP_EXECUTION_ID = ? + """; - private static final String DELETE_STEP_EXECUTION_CONTEXT = "DELETE FROM %PREFIX%STEP_EXECUTION_CONTEXT " - + "WHERE STEP_EXECUTION_ID = ?"; + private static final String DELETE_STEP_EXECUTION_CONTEXT = """ + DELETE FROM %PREFIX%STEP_EXECUTION_CONTEXT + WHERE STEP_EXECUTION_ID = ? + """; - private static final String DELETE_JOB_EXECUTION_CONTEXT = "DELETE FROM %PREFIX%JOB_EXECUTION_CONTEXT " - + "WHERE JOB_EXECUTION_ID = ?"; + private static final String DELETE_JOB_EXECUTION_CONTEXT = """ + DELETE FROM %PREFIX%JOB_EXECUTION_CONTEXT + WHERE JOB_EXECUTION_ID = ? + """; private Charset charset = StandardCharsets.UTF_8; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java index c12a8d20a..e8ff2009e 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java @@ -77,39 +77,80 @@ public class JdbcJobExecutionDao extends AbstractJdbcBatchMetadataDao implements private static final Log logger = LogFactory.getLog(JdbcJobExecutionDao.class); - private static final String SAVE_JOB_EXECUTION = "INSERT into %PREFIX%JOB_EXECUTION(JOB_EXECUTION_ID, JOB_INSTANCE_ID, START_TIME, " - + "END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, VERSION, CREATE_TIME, LAST_UPDATED) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; + private static final String SAVE_JOB_EXECUTION = """ + INSERT INTO %PREFIX%JOB_EXECUTION(JOB_EXECUTION_ID, JOB_INSTANCE_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, VERSION, CREATE_TIME, LAST_UPDATED) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """; - private static final String CHECK_JOB_EXECUTION_EXISTS = "SELECT COUNT(*) FROM %PREFIX%JOB_EXECUTION WHERE JOB_EXECUTION_ID = ?"; + private static final String CHECK_JOB_EXECUTION_EXISTS = """ + SELECT COUNT(*) + FROM %PREFIX%JOB_EXECUTION + WHERE JOB_EXECUTION_ID = ? + """; - private static final String GET_STATUS = "SELECT STATUS from %PREFIX%JOB_EXECUTION where JOB_EXECUTION_ID = ?"; + private static final String GET_STATUS = """ + SELECT STATUS + FROM %PREFIX%JOB_EXECUTION + WHERE JOB_EXECUTION_ID = ? + """; - private static final String UPDATE_JOB_EXECUTION = "UPDATE %PREFIX%JOB_EXECUTION set START_TIME = ?, END_TIME = ?, " - + " STATUS = ?, EXIT_CODE = ?, EXIT_MESSAGE = ?, VERSION = ?, CREATE_TIME = ?, LAST_UPDATED = ? where JOB_EXECUTION_ID = ? and VERSION = ?"; + private static final String UPDATE_JOB_EXECUTION = """ + UPDATE %PREFIX%JOB_EXECUTION + SET START_TIME = ?, END_TIME = ?, STATUS = ?, EXIT_CODE = ?, EXIT_MESSAGE = ?, VERSION = ?, CREATE_TIME = ?, LAST_UPDATED = ? + WHERE JOB_EXECUTION_ID = ? AND VERSION = ? + """; - private static final String FIND_JOB_EXECUTIONS = "SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, CREATE_TIME, LAST_UPDATED, VERSION" - + " from %PREFIX%JOB_EXECUTION where JOB_INSTANCE_ID = ? order by JOB_EXECUTION_ID desc"; + private static final String FIND_JOB_EXECUTIONS = """ + SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, CREATE_TIME, LAST_UPDATED, VERSION + FROM %PREFIX%JOB_EXECUTION + WHERE JOB_INSTANCE_ID = ? + ORDER BY JOB_EXECUTION_ID DESC + """; - private static final String GET_LAST_EXECUTION = "SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, CREATE_TIME, LAST_UPDATED, VERSION " - + "from %PREFIX%JOB_EXECUTION E where JOB_INSTANCE_ID = ? and JOB_EXECUTION_ID in (SELECT max(JOB_EXECUTION_ID) from %PREFIX%JOB_EXECUTION E2 where E2.JOB_INSTANCE_ID = ?)"; + private static final String GET_LAST_EXECUTION = """ + SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, CREATE_TIME, LAST_UPDATED, VERSION + FROM %PREFIX%JOB_EXECUTION E + WHERE JOB_INSTANCE_ID = ? AND JOB_EXECUTION_ID IN (SELECT MAX(JOB_EXECUTION_ID) FROM %PREFIX%JOB_EXECUTION E2 WHERE E2.JOB_INSTANCE_ID = ?) + """; - private static final String GET_EXECUTION_BY_ID = "SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, CREATE_TIME, LAST_UPDATED, VERSION" - + " from %PREFIX%JOB_EXECUTION where JOB_EXECUTION_ID = ?"; + private static final String GET_EXECUTION_BY_ID = """ + SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, CREATE_TIME, LAST_UPDATED, VERSION + FROM %PREFIX%JOB_EXECUTION + WHERE JOB_EXECUTION_ID = ? + """; - private static final String GET_RUNNING_EXECUTIONS = "SELECT E.JOB_EXECUTION_ID, E.START_TIME, E.END_TIME, E.STATUS, E.EXIT_CODE, E.EXIT_MESSAGE, E.CREATE_TIME, E.LAST_UPDATED, E.VERSION, " - + "E.JOB_INSTANCE_ID from %PREFIX%JOB_EXECUTION E, %PREFIX%JOB_INSTANCE I where E.JOB_INSTANCE_ID=I.JOB_INSTANCE_ID and I.JOB_NAME=? and E.STATUS in ('STARTING', 'STARTED', 'STOPPING')"; + private static final String GET_RUNNING_EXECUTIONS = """ + SELECT E.JOB_EXECUTION_ID, E.START_TIME, E.END_TIME, E.STATUS, E.EXIT_CODE, E.EXIT_MESSAGE, E.CREATE_TIME, E.LAST_UPDATED, E.VERSION, E.JOB_INSTANCE_ID + FROM %PREFIX%JOB_EXECUTION E, %PREFIX%JOB_INSTANCE I + WHERE E.JOB_INSTANCE_ID=I.JOB_INSTANCE_ID AND I.JOB_NAME=? AND E.STATUS IN ('STARTING', 'STARTED', 'STOPPING') + """; - private static final String CURRENT_VERSION_JOB_EXECUTION = "SELECT VERSION FROM %PREFIX%JOB_EXECUTION WHERE JOB_EXECUTION_ID=?"; + private static final String CURRENT_VERSION_JOB_EXECUTION = """ + SELECT VERSION + FROM %PREFIX%JOB_EXECUTION + WHERE JOB_EXECUTION_ID=? + """; - private static final String FIND_PARAMS_FROM_ID = "SELECT JOB_EXECUTION_ID, PARAMETER_NAME, PARAMETER_TYPE, " - + "PARAMETER_VALUE, IDENTIFYING from %PREFIX%JOB_EXECUTION_PARAMS where JOB_EXECUTION_ID = ?"; + private static final String FIND_PARAMS_FROM_ID = """ + SELECT JOB_EXECUTION_ID, PARAMETER_NAME, PARAMETER_TYPE, PARAMETER_VALUE, IDENTIFYING + FROM %PREFIX%JOB_EXECUTION_PARAMS + WHERE JOB_EXECUTION_ID = ? + """; - private static final String CREATE_JOB_PARAMETERS = "INSERT into %PREFIX%JOB_EXECUTION_PARAMS(JOB_EXECUTION_ID, PARAMETER_NAME, PARAMETER_TYPE, " - + "PARAMETER_VALUE, IDENTIFYING) values (?, ?, ?, ?, ?)"; + private static final String CREATE_JOB_PARAMETERS = """ + INSERT INTO %PREFIX%JOB_EXECUTION_PARAMS(JOB_EXECUTION_ID, PARAMETER_NAME, PARAMETER_TYPE, PARAMETER_VALUE, IDENTIFYING) + VALUES (?, ?, ?, ?, ?) + """; - private static final String DELETE_JOB_EXECUTION = "DELETE FROM %PREFIX%JOB_EXECUTION WHERE JOB_EXECUTION_ID = ?"; + private static final String DELETE_JOB_EXECUTION = """ + DELETE FROM %PREFIX%JOB_EXECUTION + WHERE JOB_EXECUTION_ID = ? + """; - private static final String DELETE_JOB_EXECUTION_PARAMETERS = "DELETE FROM %PREFIX%JOB_EXECUTION_PARAMS WHERE JOB_EXECUTION_ID = ?"; + private static final String DELETE_JOB_EXECUTION_PARAMETERS = """ + DELETE FROM %PREFIX%JOB_EXECUTION_PARAMS + WHERE JOB_EXECUTION_ID = ? + """; private int exitMessageLength = DEFAULT_EXIT_MESSAGE_LENGTH; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobInstanceDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobInstanceDao.java index c22b85157..ca06901c7 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobInstanceDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobInstanceDao.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2022 the original author or authors. + * Copyright 2006-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -60,32 +60,72 @@ public class JdbcJobInstanceDao extends AbstractJdbcBatchMetadataDao implements private static final String SQL_WILDCARD = "%"; - private static final String CREATE_JOB_INSTANCE = "INSERT into %PREFIX%JOB_INSTANCE(JOB_INSTANCE_ID, JOB_NAME, JOB_KEY, VERSION)" - + " values (?, ?, ?, ?)"; + private static final String CREATE_JOB_INSTANCE = """ + INSERT INTO %PREFIX%JOB_INSTANCE(JOB_INSTANCE_ID, JOB_NAME, JOB_KEY, VERSION) + VALUES (?, ?, ?, ?) + """; - private static final String FIND_JOBS_WITH_NAME = "SELECT JOB_INSTANCE_ID, JOB_NAME from %PREFIX%JOB_INSTANCE where JOB_NAME = ?"; + private static final String FIND_JOBS_WITH_NAME = """ + SELECT JOB_INSTANCE_ID, JOB_NAME + FROM %PREFIX%JOB_INSTANCE + WHERE JOB_NAME = ? + """; private static final String FIND_JOBS_WITH_KEY = FIND_JOBS_WITH_NAME + " and JOB_KEY = ?"; - private static final String COUNT_JOBS_WITH_NAME = "SELECT COUNT(*) from %PREFIX%JOB_INSTANCE where JOB_NAME = ?"; + private static final String COUNT_JOBS_WITH_NAME = """ + SELECT COUNT(*) + FROM %PREFIX%JOB_INSTANCE + WHERE JOB_NAME = ? + """; - private static final String FIND_JOBS_WITH_EMPTY_KEY = "SELECT JOB_INSTANCE_ID, JOB_NAME from %PREFIX%JOB_INSTANCE where JOB_NAME = ? and (JOB_KEY = ? OR JOB_KEY is NULL)"; + private static final String FIND_JOBS_WITH_EMPTY_KEY = """ + SELECT JOB_INSTANCE_ID, JOB_NAME + FROM %PREFIX%JOB_INSTANCE + WHERE JOB_NAME = ? AND (JOB_KEY = ? OR JOB_KEY IS NULL) + """; - private static final String GET_JOB_FROM_ID = "SELECT JOB_INSTANCE_ID, JOB_NAME, JOB_KEY, VERSION from %PREFIX%JOB_INSTANCE where JOB_INSTANCE_ID = ?"; + private static final String GET_JOB_FROM_ID = """ + SELECT JOB_INSTANCE_ID, JOB_NAME, JOB_KEY, VERSION + FROM %PREFIX%JOB_INSTANCE + WHERE JOB_INSTANCE_ID = ? + """; - private static final String GET_JOB_FROM_EXECUTION_ID = "SELECT ji.JOB_INSTANCE_ID, JOB_NAME, JOB_KEY, ji.VERSION from %PREFIX%JOB_INSTANCE ji, " - + "%PREFIX%JOB_EXECUTION je where JOB_EXECUTION_ID = ? and ji.JOB_INSTANCE_ID = je.JOB_INSTANCE_ID"; + private static final String GET_JOB_FROM_EXECUTION_ID = """ + SELECT JI.JOB_INSTANCE_ID, JOB_NAME, JOB_KEY, JI.VERSION + FROM %PREFIX%JOB_INSTANCE JI, %PREFIX%JOB_EXECUTION JE + WHERE JOB_EXECUTION_ID = ? AND JI.JOB_INSTANCE_ID = JE.JOB_INSTANCE_ID + """; - private static final String FIND_JOB_NAMES = "SELECT distinct JOB_NAME from %PREFIX%JOB_INSTANCE order by JOB_NAME"; + private static final String FIND_JOB_NAMES = """ + SELECT DISTINCT JOB_NAME + FROM %PREFIX%JOB_INSTANCE + ORDER BY JOB_NAME + """; - private static final String FIND_LAST_JOBS_BY_NAME = "SELECT JOB_INSTANCE_ID, JOB_NAME from %PREFIX%JOB_INSTANCE where JOB_NAME = ? order by JOB_INSTANCE_ID desc"; + private static final String FIND_LAST_JOBS_BY_NAME = """ + SELECT JOB_INSTANCE_ID, JOB_NAME + FROM %PREFIX%JOB_INSTANCE + WHERE JOB_NAME = ? + ORDER BY JOB_INSTANCE_ID DESC + """; - private static final String FIND_LAST_JOB_INSTANCE_BY_JOB_NAME = "SELECT JOB_INSTANCE_ID, JOB_NAME from %PREFIX%JOB_INSTANCE I1 where" - + " I1.JOB_NAME = ? and I1.JOB_INSTANCE_ID in (SELECT max(I2.JOB_INSTANCE_ID) from %PREFIX%JOB_INSTANCE I2 where I2.JOB_NAME = ?)"; + private static final String FIND_LAST_JOB_INSTANCE_BY_JOB_NAME = """ + SELECT JOB_INSTANCE_ID, JOB_NAME + FROM %PREFIX%JOB_INSTANCE I1 + WHERE I1.JOB_NAME = ? AND I1.JOB_INSTANCE_ID IN (SELECT MAX(I2.JOB_INSTANCE_ID) FROM %PREFIX%JOB_INSTANCE I2 WHERE I2.JOB_NAME = ?) + """; - private static final String FIND_LAST_JOBS_LIKE_NAME = "SELECT JOB_INSTANCE_ID, JOB_NAME from %PREFIX%JOB_INSTANCE where JOB_NAME like ? order by JOB_INSTANCE_ID desc"; + private static final String FIND_LAST_JOBS_LIKE_NAME = """ + SELECT JOB_INSTANCE_ID, JOB_NAME + FROM %PREFIX%JOB_INSTANCE + WHERE JOB_NAME LIKE ? ORDER BY JOB_INSTANCE_ID DESC + """; - private static final String DELETE_JOB_INSTANCE = "DELETE FROM %PREFIX%JOB_INSTANCE WHERE JOB_INSTANCE_ID = ?"; + private static final String DELETE_JOB_INSTANCE = """ + DELETE FROM %PREFIX%JOB_INSTANCE + WHERE JOB_INSTANCE_ID = ? + """; private DataFieldMaxValueIncrementer jobInstanceIncrementer; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcStepExecutionDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcStepExecutionDao.java index ec001f375..9043f916d 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcStepExecutionDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcStepExecutionDao.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2022 the original author or authors. + * Copyright 2006-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -69,45 +69,51 @@ public class JdbcStepExecutionDao extends AbstractJdbcBatchMetadataDao implement private static final Log logger = LogFactory.getLog(JdbcStepExecutionDao.class); - private static final String SAVE_STEP_EXECUTION = "INSERT into %PREFIX%STEP_EXECUTION(STEP_EXECUTION_ID, VERSION, " - + "STEP_NAME, JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, COMMIT_COUNT, READ_COUNT, FILTER_COUNT, " - + "WRITE_COUNT, EXIT_CODE, EXIT_MESSAGE, READ_SKIP_COUNT, WRITE_SKIP_COUNT, PROCESS_SKIP_COUNT, " - + "ROLLBACK_COUNT, LAST_UPDATED, CREATE_TIME) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; + private static final String SAVE_STEP_EXECUTION = """ + INSERT INTO %PREFIX%STEP_EXECUTION(STEP_EXECUTION_ID, VERSION, STEP_NAME, JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, COMMIT_COUNT, READ_COUNT, FILTER_COUNT, WRITE_COUNT, EXIT_CODE, EXIT_MESSAGE, READ_SKIP_COUNT, WRITE_SKIP_COUNT, PROCESS_SKIP_COUNT, ROLLBACK_COUNT, LAST_UPDATED, CREATE_TIME) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """; - private static final String UPDATE_STEP_EXECUTION = "UPDATE %PREFIX%STEP_EXECUTION set START_TIME = ?, END_TIME = ?, " - + "STATUS = ?, COMMIT_COUNT = ?, READ_COUNT = ?, FILTER_COUNT = ?, WRITE_COUNT = ?, EXIT_CODE = ?, " - + "EXIT_MESSAGE = ?, VERSION = ?, READ_SKIP_COUNT = ?, PROCESS_SKIP_COUNT = ?, WRITE_SKIP_COUNT = ?, " - + "ROLLBACK_COUNT = ?, LAST_UPDATED = ?" + " where STEP_EXECUTION_ID = ? and VERSION = ?"; + private static final String UPDATE_STEP_EXECUTION = """ + UPDATE %PREFIX%STEP_EXECUTION + SET START_TIME = ?, END_TIME = ?, STATUS = ?, COMMIT_COUNT = ?, READ_COUNT = ?, FILTER_COUNT = ?, WRITE_COUNT = ?, EXIT_CODE = ?, EXIT_MESSAGE = ?, VERSION = ?, READ_SKIP_COUNT = ?, PROCESS_SKIP_COUNT = ?, WRITE_SKIP_COUNT = ?, ROLLBACK_COUNT = ?, LAST_UPDATED = ? + WHERE STEP_EXECUTION_ID = ? AND VERSION = ? + """; - private static final String GET_RAW_STEP_EXECUTIONS = "SELECT STEP_EXECUTION_ID, STEP_NAME, START_TIME, END_TIME, " - + "STATUS, COMMIT_COUNT, READ_COUNT, FILTER_COUNT, WRITE_COUNT, EXIT_CODE, EXIT_MESSAGE, READ_SKIP_COUNT, " - + "WRITE_SKIP_COUNT, PROCESS_SKIP_COUNT, ROLLBACK_COUNT, LAST_UPDATED, VERSION, CREATE_TIME from " - + "%PREFIX%STEP_EXECUTION where JOB_EXECUTION_ID = ?"; + private static final String GET_RAW_STEP_EXECUTIONS = """ + SELECT STEP_EXECUTION_ID, STEP_NAME, START_TIME, END_TIME, STATUS, COMMIT_COUNT, READ_COUNT, FILTER_COUNT, WRITE_COUNT, EXIT_CODE, EXIT_MESSAGE, READ_SKIP_COUNT, WRITE_SKIP_COUNT, PROCESS_SKIP_COUNT, ROLLBACK_COUNT, LAST_UPDATED, VERSION, CREATE_TIME + FROM %PREFIX%STEP_EXECUTION + WHERE JOB_EXECUTION_ID = ? + """; - private static final String GET_STEP_EXECUTIONS = GET_RAW_STEP_EXECUTIONS + " order by STEP_EXECUTION_ID"; + private static final String GET_STEP_EXECUTIONS = GET_RAW_STEP_EXECUTIONS + " ORDER BY STEP_EXECUTION_ID"; - private static final String GET_STEP_EXECUTION = GET_RAW_STEP_EXECUTIONS + " and STEP_EXECUTION_ID = ?"; + private static final String GET_STEP_EXECUTION = GET_RAW_STEP_EXECUTIONS + " AND STEP_EXECUTION_ID = ?"; - private static final String GET_LAST_STEP_EXECUTION = "SELECT " - + " SE.STEP_EXECUTION_ID, SE.STEP_NAME, SE.START_TIME, SE.END_TIME, SE.STATUS, SE.COMMIT_COUNT, " - + "SE.READ_COUNT, SE.FILTER_COUNT, SE.WRITE_COUNT, SE.EXIT_CODE, SE.EXIT_MESSAGE, SE.READ_SKIP_COUNT, " - + "SE.WRITE_SKIP_COUNT, SE.PROCESS_SKIP_COUNT, SE.ROLLBACK_COUNT, SE.LAST_UPDATED, SE.VERSION, SE.CREATE_TIME," - + " JE.JOB_EXECUTION_ID, JE.START_TIME, JE.END_TIME, JE.STATUS, JE.EXIT_CODE, JE.EXIT_MESSAGE, " - + "JE.CREATE_TIME, JE.LAST_UPDATED, JE.VERSION" - + " from %PREFIX%JOB_EXECUTION JE join %PREFIX%STEP_EXECUTION SE" - + " on SE.JOB_EXECUTION_ID = JE.JOB_EXECUTION_ID " + "where JE.JOB_INSTANCE_ID = ?" - + " and SE.STEP_NAME = ?" + " order by SE.CREATE_TIME desc, SE.STEP_EXECUTION_ID desc"; + private static final String GET_LAST_STEP_EXECUTION = """ + SELECT SE.STEP_EXECUTION_ID, SE.STEP_NAME, SE.START_TIME, SE.END_TIME, SE.STATUS, SE.COMMIT_COUNT, SE.READ_COUNT, SE.FILTER_COUNT, SE.WRITE_COUNT, SE.EXIT_CODE, SE.EXIT_MESSAGE, SE.READ_SKIP_COUNT, SE.WRITE_SKIP_COUNT, SE.PROCESS_SKIP_COUNT, SE.ROLLBACK_COUNT, SE.LAST_UPDATED, SE.VERSION, SE.CREATE_TIME, JE.JOB_EXECUTION_ID, JE.START_TIME, JE.END_TIME, JE.STATUS, JE.EXIT_CODE, JE.EXIT_MESSAGE, JE.CREATE_TIME, JE.LAST_UPDATED, JE.VERSION + FROM %PREFIX%JOB_EXECUTION JE + JOIN %PREFIX%STEP_EXECUTION SE ON SE.JOB_EXECUTION_ID = JE.JOB_EXECUTION_ID + WHERE JE.JOB_INSTANCE_ID = ? AND SE.STEP_NAME = ? + ORDER BY SE.CREATE_TIME DESC, SE.STEP_EXECUTION_ID DESC + """; - private static final String CURRENT_VERSION_STEP_EXECUTION = "SELECT VERSION FROM %PREFIX%STEP_EXECUTION WHERE " - + "STEP_EXECUTION_ID=?"; + private static final String CURRENT_VERSION_STEP_EXECUTION = """ + SELECT VERSION FROM %PREFIX%STEP_EXECUTION + WHERE STEP_EXECUTION_ID=? + """; - private static final String COUNT_STEP_EXECUTIONS = "SELECT COUNT(*) " - + " from %PREFIX%JOB_EXECUTION JE JOIN %PREFIX%STEP_EXECUTION SE " - + " on SE.JOB_EXECUTION_ID = JE.JOB_EXECUTION_ID " + "where JE.JOB_INSTANCE_ID = ?" - + " and SE.STEP_NAME = ?"; + private static final String COUNT_STEP_EXECUTIONS = """ + SELECT COUNT(*) + FROM %PREFIX%JOB_EXECUTION JE + JOIN %PREFIX%STEP_EXECUTION SE ON SE.JOB_EXECUTION_ID = JE.JOB_EXECUTION_ID + WHERE JE.JOB_INSTANCE_ID = ? AND SE.STEP_NAME = ? + """; - private static final String DELETE_STEP_EXECUTION = "DELETE FROM %PREFIX%STEP_EXECUTION " - + "WHERE STEP_EXECUTION_ID = ?"; + private static final String DELETE_STEP_EXECUTION = """ + DELETE FROM %PREFIX%STEP_EXECUTION + WHERE STEP_EXECUTION_ID = ? + """; private int exitMessageLength = DEFAULT_EXIT_MESSAGE_LENGTH;