0

JdbcTemplate: add queryOne method

This commit is contained in:
2021-01-03 16:07:40 +03:00
parent c963c4bd60
commit f821691308
3 changed files with 26 additions and 0 deletions

View File

@@ -2,6 +2,7 @@ package ghast.database;
import java.util.List;
import java.util.Map;
import java.util.Optional;
public interface JdbcOperations {
@@ -9,6 +10,8 @@ public interface JdbcOperations {
<T> T query(String sql, ResultSetExtractor<T> rse) throws DataAccessException;
<T> Optional<T> queryOne(String sql, ResultSetExtractor<T> rse) throws DataAccessException;
<T> List<T> queryList(String sql, RowMapper<T> rowMapper) throws DataAccessException;
Map<String, Object> queryForMap(String sql) throws DataAccessException;

View File

@@ -59,6 +59,17 @@ public class JdbcTemplate implements JdbcOperations {
}
}
@Override
public <T> Optional<T> queryOne(String sql, ResultSetExtractor<T> rse) throws DataAccessException {
return query(sql, rs -> {
if (rs.next()) {
return Optional.ofNullable(rse.extractData(rs));
} else {
return Optional.empty();
}
});
}
@Override
public <T> List<T> queryList(String sql, final RowMapper<T> rowMapper) throws DataAccessException {
return query(sql, rs -> {