diff --git a/build.gradle b/build.gradle index 12648dd..6186e20 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { } group 'ru.di9' -version '1.9' +version '1.9.1' repositories { mavenCentral() diff --git a/src/main/java/ru/di9/jdbc/JdbcTemplate.java b/src/main/java/ru/di9/jdbc/JdbcTemplate.java index e079cf8..cf3adb4 100644 --- a/src/main/java/ru/di9/jdbc/JdbcTemplate.java +++ b/src/main/java/ru/di9/jdbc/JdbcTemplate.java @@ -15,10 +15,10 @@ public interface JdbcTemplate { T query(@Language("GenericSQL") String sql, ResultSetExtractor rse) throws DataAccessException; T query(@Language("GenericSQL") String sql, PreparedStatementProcessor psp, ResultSetExtractor rse) - throws DataAccessException; + throws DataAccessException; Optional queryOne(@Language("GenericSQL") String sql, ResultSetExtractor rse) - throws DataAccessException; + throws DataAccessException; Optional queryOne(@Language("GenericSQL") String sql, PreparedStatementProcessor psp, ResultSetExtractor rse) throws DataAccessException; @@ -33,4 +33,6 @@ public interface JdbcTemplate { ResultSetExtractor processGeneratedKey) throws DataAccessException; void transaction(Consumer consumer); + + void update(@Language("GenericSQL") String sql, PreparedStatementProcessor psp) throws DataAccessException; } diff --git a/src/main/java/ru/di9/jdbc/JdbcTemplateImpl.java b/src/main/java/ru/di9/jdbc/JdbcTemplateImpl.java index 038e181..30a908f 100644 --- a/src/main/java/ru/di9/jdbc/JdbcTemplateImpl.java +++ b/src/main/java/ru/di9/jdbc/JdbcTemplateImpl.java @@ -145,6 +145,17 @@ public class JdbcTemplateImpl implements JdbcTemplate { } } + @Override + public void update(String sql, PreparedStatementProcessor psp) throws DataAccessException { + try (PreparedStatement statement = dataSource.getConnection().prepareStatement(sql)){ + psp.process(statement); + + statement.executeUpdate(); + }catch (SQLException e){ + throw throwDataAccessException(sql, e); + } + } + private ResultSetExtractor> createResultSetExtractorList(final RowMapper rowMapper) { return rs -> { List resultList; diff --git a/src/main/java/ru/di9/jdbc/JdbcTemplateTransactional.java b/src/main/java/ru/di9/jdbc/JdbcTemplateTransactional.java index b5b6d46..7df5c11 100644 --- a/src/main/java/ru/di9/jdbc/JdbcTemplateTransactional.java +++ b/src/main/java/ru/di9/jdbc/JdbcTemplateTransactional.java @@ -112,6 +112,17 @@ public class JdbcTemplateTransactional implements JdbcTemplate, AutoCloseable { consumer.accept(this); } + @Override + public void update(String sql, PreparedStatementProcessor psp) throws DataAccessException { + try (PreparedStatement statement = connection.prepareStatement(sql)) { + psp.process(statement); + + statement.executeUpdate(); + } catch (SQLException e) { + throw throwDataAccessException(sql, e); + } + } + private ResultSetExtractor> createResultSetExtractorList(final RowMapper rowMapper) { return rs -> { List resultList;