2 Commits
v1.9 ... v1.9.1

Author SHA1 Message Date
lCarLyl
3676b24d0f change version and add update 2022-09-25 01:40:41 +03:00
lCarLyl
8512b8ffe4 fix ResultSet not positioned properly, perhaps you need to call next. 2022-09-25 01:10:28 +03:00
4 changed files with 26 additions and 2 deletions

View File

@@ -5,7 +5,7 @@ plugins {
}
group 'ru.di9'
version '1.9'
version '1.9.1'
repositories {
mavenCentral()

View File

@@ -33,4 +33,6 @@ public interface JdbcTemplate {
ResultSetExtractor<T> processGeneratedKey) throws DataAccessException;
void transaction(Consumer<JdbcTemplate> consumer);
void update(@Language("GenericSQL") String sql, PreparedStatementProcessor psp);
}

View File

@@ -56,7 +56,7 @@ public class JdbcTemplateImpl implements JdbcTemplate {
PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
psp.process(preparedStatement);
try (ResultSet resultSet = preparedStatement.executeQuery()) {
return rse.extractData(resultSet);
return resultSet.next() ? rse.extractData(resultSet) : null;
}
} catch (SQLException e) {
throw throwDataAccessException(sql, e);
@@ -145,6 +145,17 @@ public class JdbcTemplateImpl implements JdbcTemplate {
}
}
@Override
public void update(String sql, PreparedStatementProcessor psp) {
try (PreparedStatement statement = dataSource.getConnection().prepareStatement(sql)){
psp.process(statement);
statement.executeUpdate();
}catch (SQLException e){
throw throwDataAccessException(sql, e);
}
}
private <T> ResultSetExtractor<List<T>> createResultSetExtractorList(final RowMapper<T> rowMapper) {
return rs -> {
List<T> resultList;

View File

@@ -112,6 +112,17 @@ public class JdbcTemplateTransactional implements JdbcTemplate, AutoCloseable {
consumer.accept(this);
}
@Override
public void update(String sql, PreparedStatementProcessor psp) {
try (PreparedStatement statement = connection.prepareStatement(sql)) {
psp.process(statement);
statement.executeUpdate();
} catch (SQLException e) {
throw throwDataAccessException(sql, e);
}
}
private <T> ResultSetExtractor<List<T>> createResultSetExtractorList(final RowMapper<T> rowMapper) {
return rs -> {
List<T> resultList;