From 1873f252111eb8de73068f7c18ec693632ea5d4e Mon Sep 17 00:00:00 2001 From: Tran Ngoc Nhan Date: Fri, 2 Aug 2024 20:52:38 +0700 Subject: [PATCH] add JdbcTemplate --- .../jdbc/core/simple/DefaultJdbcClient.java | 19 +++++++++++++++++++ .../jdbc/core/simple/JdbcClient.java | 14 ++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/DefaultJdbcClient.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/DefaultJdbcClient.java index 7ef7d6ccfc0a..a2f22f262863 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/DefaultJdbcClient.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/DefaultJdbcClient.java @@ -83,6 +83,25 @@ public DefaultJdbcClient(NamedParameterJdbcOperations jdbcTemplate) { this.namedParamOps = jdbcTemplate; } + /** + * Expose the classic Spring JdbcTemplate to allow invocation of + * classic JDBC operations. + */ + @Override + public JdbcOperations getJdbcOperations() { + return this.classicOps; + } + + /** + * Expose the classic Spring {@link JdbcTemplate} itself, if available, + * in particular for passing it on to other {@code JdbcTemplate} consumers. + *

If sufficient for the purposes at hand, {@link #getJdbcOperations()} + * is recommended over this variant. + */ + public JdbcTemplate getJdbcTemplate() { + Assert.state(this.classicOps instanceof JdbcTemplate, "No JdbcTemplate available"); + return (JdbcTemplate) this.classicOps; + } @Override public StatementSpec sql(String sql) { diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/JdbcClient.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/JdbcClient.java index 326938df90ee..83431f05f48f 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/JdbcClient.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/JdbcClient.java @@ -28,6 +28,7 @@ import org.springframework.dao.support.DataAccessUtils; import org.springframework.jdbc.core.JdbcOperations; +import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.ResultSetExtractor; import org.springframework.jdbc.core.RowCallbackHandler; import org.springframework.jdbc.core.RowMapper; @@ -76,6 +77,19 @@ public interface JdbcClient { */ StatementSpec sql(String sql); + /** + * Expose the classic Spring JdbcTemplate to allow invocation of + * classic JDBC operations. + */ + JdbcOperations getJdbcOperations(); + + /** + * Expose the classic Spring {@link JdbcTemplate} itself, if available, + * in particular for passing it on to other {@code JdbcTemplate} consumers. + *

If sufficient for the purposes at hand, {@link #getJdbcOperations()} + * is recommended over this variant. + */ + JdbcTemplate getJdbcTemplate(); // Static factory methods