From a6f3f101e49b056822661c84614a7e8578a781d3 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Tue, 24 Jun 2014 19:26:53 +0200 Subject: [PATCH] Preparations for eventual removal of ParameterizedRowMapper along with SimpleJdbcTemplate Issue: SPR-11895 --- .../jdbc/core/BeanPropertyRowMapper.java | 4 ++-- .../jdbc/core/SingleColumnRowMapper.java | 15 ++++++++++++++- .../ParameterizedBeanPropertyRowMapper.java | 6 +++++- .../jdbc/core/simple/ParameterizedRowMapper.java | 3 +++ .../ParameterizedSingleColumnRowMapper.java | 9 ++++++--- 5 files changed, 30 insertions(+), 7 deletions(-) diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java index c65ac15914..25f87f668f 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 the original author or authors. + * Copyright 2002-2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -63,7 +63,7 @@ import org.springframework.util.StringUtils; * will have been set to the primitive's default value instead of null. * *

Please note that this class is designed to provide convenience rather than high performance. - * For best performance consider using a custom RowMapper. + * For best performance, consider using a custom {@link RowMapper} implementation. * * @author Thomas Risberg * @author Juergen Hoeller diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/SingleColumnRowMapper.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/SingleColumnRowMapper.java index 1749385394..fb4897845b 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/SingleColumnRowMapper.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/SingleColumnRowMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -185,4 +185,17 @@ public class SingleColumnRowMapper implements RowMapper { } } + + /** + * Static factory method to create a new ParameterizedSingleColumnRowMapper + * (with the required type specified only once). + * @param requiredType the type that each result object is expected to match + * @since 4.1 + */ + public static SingleColumnRowMapper newInstance(Class requiredType) { + SingleColumnRowMapper newInstance = new SingleColumnRowMapper(); + newInstance.setRequiredType(requiredType); + return newInstance; + } + } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/ParameterizedBeanPropertyRowMapper.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/ParameterizedBeanPropertyRowMapper.java index 5c6e2fe775..1019c929af 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/ParameterizedBeanPropertyRowMapper.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/ParameterizedBeanPropertyRowMapper.java @@ -43,13 +43,17 @@ import org.springframework.jdbc.core.BeanPropertyRowMapper; * try using column aliases in the SQL statement like "select fname as first_name from customer". * *

Please note that this class is designed to provide convenience rather than high performance. - * For best performance consider using a custom RowMapper. + * For best performance, consider using a custom {@link org.springframework.jdbc.core.RowMapper} + * implementation. * * @author Thomas Risberg * @author Juergen Hoeller * @since 2.5 * @see ParameterizedRowMapper + * @deprecated along with {@link SimpleJdbcTemplate}, in favor of the regular + * {@link org.springframework.jdbc.core.BeanPropertyRowMapper} */ +@Deprecated public class ParameterizedBeanPropertyRowMapper extends BeanPropertyRowMapper implements ParameterizedRowMapper { diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/ParameterizedRowMapper.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/ParameterizedRowMapper.java index b6c75187d2..fd5d800c27 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/ParameterizedRowMapper.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/ParameterizedRowMapper.java @@ -27,7 +27,10 @@ import org.springframework.jdbc.core.RowMapper; * @author Juergen Hoeller * @since 2.0 * @see org.springframework.jdbc.core.simple.SimpleJdbcOperations + * @deprecated along with {@link SimpleJdbcTemplate}, in favor of the regular + * {@link org.springframework.jdbc.core.SingleColumnRowMapper} */ +@Deprecated public interface ParameterizedRowMapper extends RowMapper { } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/ParameterizedSingleColumnRowMapper.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/ParameterizedSingleColumnRowMapper.java index fa82b651b3..252e00937c 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/ParameterizedSingleColumnRowMapper.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/ParameterizedSingleColumnRowMapper.java @@ -32,7 +32,10 @@ import org.springframework.jdbc.core.SingleColumnRowMapper; * * @author Juergen Hoeller * @since 2.5.2 + * @deprecated along with {@link SimpleJdbcTemplate}, in favor of the regular + * {@link org.springframework.jdbc.core.SingleColumnRowMapper} */ +@Deprecated public class ParameterizedSingleColumnRowMapper extends SingleColumnRowMapper implements ParameterizedRowMapper { @@ -42,9 +45,9 @@ public class ParameterizedSingleColumnRowMapper extends SingleColumnRowMapper * @param requiredType the type that each result object is expected to match */ public static ParameterizedSingleColumnRowMapper newInstance(Class requiredType) { - ParameterizedSingleColumnRowMapper rm = new ParameterizedSingleColumnRowMapper(); - rm.setRequiredType(requiredType); - return rm; + ParameterizedSingleColumnRowMapper newInstance = new ParameterizedSingleColumnRowMapper(); + newInstance.setRequiredType(requiredType); + return newInstance; } }