类 BeanPropertyRowMapper<T>

  • 所有已实现的接口:
    org.springframework.jdbc.core.RowMapper<T>

    public class BeanPropertyRowMapper<T>
    extends Object
    implements org.springframework.jdbc.core.RowMapper<T>
    增强 BeanPropertyRowMapper,支持 FieldName 注解
    从以下版本开始:
    2020年2月24日
    作者:
    ylyue
    • 字段详细资料

      • logger

        protected final org.apache.commons.logging.Log logger
        Logger available to subclasses.
    • 构造器详细资料

      • BeanPropertyRowMapper

        public BeanPropertyRowMapper​(Class<T> mappedClass)
        Create a new BeanPropertyRowMapper, accepting unpopulated properties in the target bean.

        Consider using the newInstance(java.lang.Class<T>) factory method instead, which allows for specifying the mapped type once only.

        参数:
        mappedClass - the class that each row should be mapped to
      • BeanPropertyRowMapper

        public BeanPropertyRowMapper​(Class<T> mappedClass,
                                     boolean checkFullyPopulated)
        Create a new BeanPropertyRowMapper.
        参数:
        mappedClass - the class that each row should be mapped to
        checkFullyPopulated - whether we're strictly validating that all bean properties have been mapped from corresponding database fields
    • 方法详细资料

      • setMappedClass

        public void setMappedClass​(Class<T> mappedClass)
        Set the class that each row should be mapped to.
      • getMappedClass

        @Nullable
        public final Class<T> getMappedClass()
        Get the class that we are mapping to.
      • setCheckFullyPopulated

        public void setCheckFullyPopulated​(boolean checkFullyPopulated)
        Set whether we're strictly validating that all bean properties have been mapped from corresponding database fields.

        Default is false, accepting unpopulated properties in the target bean.

      • isCheckFullyPopulated

        public boolean isCheckFullyPopulated()
        Return whether we're strictly validating that all bean properties have been mapped from corresponding database fields.
      • setPrimitivesDefaultedForNullValue

        public void setPrimitivesDefaultedForNullValue​(boolean primitivesDefaultedForNullValue)
        Set whether we're defaulting Java primitives in the case of mapping a null value from corresponding database fields.

        Default is false, throwing an exception when nulls are mapped to Java primitives.

      • isPrimitivesDefaultedForNullValue

        public boolean isPrimitivesDefaultedForNullValue()
        Return whether we're defaulting Java primitives in the case of mapping a null value from corresponding database fields.
      • setConversionService

        public void setConversionService​(@Nullable
                                         org.springframework.core.convert.ConversionService conversionService)
        Set a ConversionService for binding JDBC values to bean properties, or null for none.

        Default is a DefaultConversionService, as of Spring 4.3. This provides support for java.time conversion and other special types.

        从以下版本开始:
        4.3
        另请参阅:
        initBeanWrapper(BeanWrapper)
      • getConversionService

        @Nullable
        public org.springframework.core.convert.ConversionService getConversionService()
        Return a ConversionService for binding JDBC values to bean properties, or null if none.
        从以下版本开始:
        4.3
      • initialize

        protected void initialize​(Class<T> mappedClass)
        Initialize the mapping meta-data for the given class.
        参数:
        mappedClass - the mapped class
      • underscoreName

        protected String underscoreName​(String name)
        Convert a name in camelCase to an underscored name in lower case. Any upper case letters are converted to lower case with a preceding underscore.
        参数:
        name - the original name
        返回:
        the converted name
        从以下版本开始:
        4.2
        另请参阅:
        lowerCaseName(java.lang.String)
      • lowerCaseName

        protected String lowerCaseName​(String name)
        Convert the given name to lower case. By default, conversions will happen within the US locale.
        参数:
        name - the original name
        返回:
        the converted name
        从以下版本开始:
        4.2
      • mapRow

        public T mapRow​(ResultSet rs,
                        int rowNumber)
                 throws SQLException
        Extract the values for all columns in the current row.

        Utilizes public setters and result set meta-data.

        指定者:
        mapRow 在接口中 org.springframework.jdbc.core.RowMapper<T>
        抛出:
        SQLException
        另请参阅:
        ResultSetMetaData
      • initBeanWrapper

        protected void initBeanWrapper​(org.springframework.beans.BeanWrapper bw)
        Initialize the given BeanWrapper to be used for row mapping. To be called for each row.

        The default implementation applies the configured ConversionService, if any. Can be overridden in subclasses.

        参数:
        bw - the BeanWrapper to initialize
        另请参阅:
        getConversionService(), ConfigurablePropertyAccessor.setConversionService(org.springframework.core.convert.ConversionService)
      • getColumnValue

        @Nullable
        protected Object getColumnValue​(ResultSet rs,
                                        int index,
                                        PropertyDescriptor pd)
                                 throws SQLException
        Retrieve a JDBC object value for the specified column.

        The default implementation calls JdbcUtils.getResultSetValue(java.sql.ResultSet, int, Class). Subclasses may override this to check specific value types upfront, or to post-process values return from getResultSetValue.

        参数:
        rs - is the ResultSet holding the data
        index - is the column index
        pd - the bean property that each result object is expected to match
        返回:
        the Object value
        抛出:
        SQLException - in case of extraction failure
        另请参阅:
        JdbcUtils.getResultSetValue(java.sql.ResultSet, int, Class)
      • newInstance

        public static <T> BeanPropertyRowMapper<T> newInstance​(Class<T> mappedClass)
        Static factory method to create a new BeanPropertyRowMapper (with the mapped class specified only once).
        参数:
        mappedClass - the class that each row should be mapped to