Class AbstractGenericRowMapper<T>

  • Type Parameters:
    T -
    All Implemented Interfaces:
    IRowMapper<T>
    Direct Known Subclasses:
    AnnotatedGenericRowMapper

    public abstract class AbstractGenericRowMapper<T>
    extends java.lang.Object
    implements IRowMapper<T>
    Abstract generic implementation of IRowMapper.
    Since:
    0.8.0
    Author:
    Thanh Nguyen
    • Constructor Detail

      • AbstractGenericRowMapper

        public AbstractGenericRowMapper()
    • Method Detail

      • generateSqlSelect

        public java.lang.String generateSqlSelect​(java.lang.String tableName)
        Generate SELECT statement to select a BO.

        The generated SQL will look like this SELECT all-columns FROM table WHERE pk-1=? AND pk-2=?...

        Parameters:
        tableName -
        Returns:
        Since:
        0.8.5
      • generateSqlSelectAll

        public java.lang.String generateSqlSelectAll​(java.lang.String tableName)
        Generate SELECT statement to SELECT all BOs, ordered by primary keys.

        The generated SQL will look like this SELECT all-columns FROM table ORDER BY pk-1, pk-2...

        Parameters:
        tableName -
        Returns:
        Since:
        0.8.5
      • generateSqlInsert

        public java.lang.String generateSqlInsert​(java.lang.String tableName)
        Generate INSERT statement to insert a BO.

        The generated SQL will look like this INSERT INTO table (all-columns) VALUES (?,?,...)

        Parameters:
        tableName -
        Returns:
        Since:
        0.8.5
      • generateSqlDelete

        public java.lang.String generateSqlDelete​(java.lang.String tableName)
        Generate DELETE statement to delete an existing BO.

        The generated SQL will look like this DELETE FROM table WHERE pk-1=? AND pk-2=?...

        Parameters:
        tableName -
        Returns:
        Since:
        0.8.5
      • generateSqlUpdate

        public java.lang.String generateSqlUpdate​(java.lang.String tableName)
        Generate UPDATE statement to update an existing BO.

        The generated SQL will look like this UPDATE table SET col1=?, col2=?...WHERE pk-1=? AND pk-2=?...

        Parameters:
        tableName -
        Returns:
        Since:
        0.8.5
      • getTypeClass

        protected java.lang.Class<T> getTypeClass()
        Returns:
        Since:
        0.8.0.4
      • getClassLoader

        protected java.lang.ClassLoader getClassLoader()
        Class loader used by mapRow(ResultSet, int). Sub-class may override this method to supply its custom class loader.
        Returns:
        Since:
        0.8.0.4
      • mapRow

        public T mapRow​(java.sql.ResultSet rs,
                        int rowNum)
                 throws java.sql.SQLException
        Transform a DB row from ResultSet to a business object.

        Note: Implementation should NOT call ResultSet.next()!

        Specified by:
        mapRow in interface IRowMapper<T>
        Returns:
        the result object for the current row
        Throws:
        java.sql.SQLException
      • valuesForColumns

        public java.lang.Object[] valuesForColumns​(T bo,
                                                   java.lang.String... columns)
        Extract attribute values from a BO for corresponding DB table columns
        Parameters:
        bo -
        Returns:
      • getAllColumns

        public java.lang.String[] getAllColumns()
        Get all DB table column names.
        Returns:
      • getInsertColumns

        public java.lang.String[] getInsertColumns()
        Get DB table column names used for inserting.
        Returns:
      • getChecksumColumn

        public java.lang.String getChecksumColumn()
        Get name of checksum column.
        Returns:
        Since:
        0.8.1
      • getPrimaryKeyColumns

        public abstract java.lang.String[] getPrimaryKeyColumns()
        Get primary-key column names.
        Returns:
      • getUpdateColumns

        public abstract java.lang.String[] getUpdateColumns()
        Get DB table column names used for updating.
        Returns:
      • getColumnAttributeMappings

        public abstract java.util.Map<java.lang.String,​AbstractGenericRowMapper.ColAttrMapping> getColumnAttributeMappings()
        Get DB table column -> BO attribute mappings.
        Returns:
        mappings column-name -> ColAttrMapping