5 Commits

Author SHA1 Message Date
lcarlyl
1ab82458eb Merge remote-tracking branch 'origin/master' 2022-11-30 16:58:46 +03:00
lcarlyl
515570f057 fix query 2022-11-30 16:56:42 +03:00
DmitriyMX
8dba178348 Merge pull request 'change version and add update' (#1) from feature/update into master
Reviewed-on: https://dev.di9.ru/gitea/dmitriymx/jdbc-template/pulls/1
2022-09-25 02:02:50 +03:00
lCarLyl
4574c841d8 add throws DataAccessException 2022-09-25 01:59:55 +03:00
lCarLyl
c4d459c461 add throws DataAccessException 2022-09-25 01:57:58 +03:00
4 changed files with 9 additions and 7 deletions

View File

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

View File

@@ -15,10 +15,10 @@ public interface JdbcTemplate {
<T> T query(@Language("GenericSQL") String sql, ResultSetExtractor<T> rse) throws DataAccessException; <T> T query(@Language("GenericSQL") String sql, ResultSetExtractor<T> rse) throws DataAccessException;
<T> T query(@Language("GenericSQL") String sql, PreparedStatementProcessor psp, ResultSetExtractor<T> rse) <T> T query(@Language("GenericSQL") String sql, PreparedStatementProcessor psp, ResultSetExtractor<T> rse)
throws DataAccessException; throws DataAccessException;
<T> Optional<T> queryOne(@Language("GenericSQL") String sql, ResultSetExtractor<T> rse) <T> Optional<T> queryOne(@Language("GenericSQL") String sql, ResultSetExtractor<T> rse)
throws DataAccessException; throws DataAccessException;
<T> Optional<T> queryOne(@Language("GenericSQL") String sql, PreparedStatementProcessor psp, <T> Optional<T> queryOne(@Language("GenericSQL") String sql, PreparedStatementProcessor psp,
ResultSetExtractor<T> rse) throws DataAccessException; ResultSetExtractor<T> rse) throws DataAccessException;
@@ -34,5 +34,5 @@ public interface JdbcTemplate {
void transaction(Consumer<JdbcTemplate> consumer); void transaction(Consumer<JdbcTemplate> consumer);
void update(@Language("GenericSQL") String sql, PreparedStatementProcessor psp); void update(@Language("GenericSQL") String sql, PreparedStatementProcessor psp) throws DataAccessException;
} }

View File

@@ -1,6 +1,7 @@
package ru.di9.jdbc; package ru.di9.jdbc;
import org.intellij.lang.annotations.Language; import org.intellij.lang.annotations.Language;
import org.jetbrains.annotations.Nullable;
import javax.sql.DataSource; import javax.sql.DataSource;
import java.sql.*; import java.sql.*;
@@ -50,13 +51,14 @@ public class JdbcTemplateImpl implements JdbcTemplate {
} }
@Override @Override
@Nullable
public <T> T query(@Language("GenericSQL") String sql, PreparedStatementProcessor psp, public <T> T query(@Language("GenericSQL") String sql, PreparedStatementProcessor psp,
ResultSetExtractor<T> rse) throws DataAccessException { ResultSetExtractor<T> rse) throws DataAccessException {
try (Connection connection = dataSource.getConnection(); try (Connection connection = dataSource.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(sql)) { PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
psp.process(preparedStatement); psp.process(preparedStatement);
try (ResultSet resultSet = preparedStatement.executeQuery()) { try (ResultSet resultSet = preparedStatement.executeQuery()) {
return resultSet.next() ? rse.extractData(resultSet) : null; return rse.extractData(resultSet);
} }
} catch (SQLException e) { } catch (SQLException e) {
throw throwDataAccessException(sql, e); throw throwDataAccessException(sql, e);
@@ -146,7 +148,7 @@ public class JdbcTemplateImpl implements JdbcTemplate {
} }
@Override @Override
public void update(String sql, PreparedStatementProcessor psp) { public void update(String sql, PreparedStatementProcessor psp) throws DataAccessException {
try (PreparedStatement statement = dataSource.getConnection().prepareStatement(sql)){ try (PreparedStatement statement = dataSource.getConnection().prepareStatement(sql)){
psp.process(statement); psp.process(statement);

View File

@@ -113,7 +113,7 @@ public class JdbcTemplateTransactional implements JdbcTemplate, AutoCloseable {
} }
@Override @Override
public void update(String sql, PreparedStatementProcessor psp) { public void update(String sql, PreparedStatementProcessor psp) throws DataAccessException {
try (PreparedStatement statement = connection.prepareStatement(sql)) { try (PreparedStatement statement = connection.prepareStatement(sql)) {
psp.process(statement); psp.process(statement);