Package com.github.ddth.dao.jdbc
Class AbstractGenericRowMapper<T>
- java.lang.Object
-
- com.github.ddth.dao.jdbc.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 ofIRowMapper
.- Since:
- 0.8.0
- Author:
- Thanh Nguyen
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
AbstractGenericRowMapper.ColAttrMapping
Db table column -> BO attribute mapping.protected static interface
AbstractGenericRowMapper.ColumnDataExtractor<R>
Action to extract table column data.
-
Constructor Summary
Constructors Constructor Description AbstractGenericRowMapper()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description java.lang.String
generateSqlDelete(java.lang.String tableName)
Generate DELETE statement to delete an existing BO.java.lang.String
generateSqlInsert(java.lang.String tableName)
Generate INSERT statement to insert a BO.java.lang.String
generateSqlSelect(java.lang.String tableName)
Generate SELECT statement to select a BO.java.lang.String
generateSqlSelectAll(java.lang.String tableName)
Generate SELECT statement to SELECT all BOs, ordered by primary keys.java.lang.String
generateSqlUpdate(java.lang.String tableName)
Generate UPDATE statement to update an existing BO.java.lang.String[]
getAllColumns()
Get all DB table column names.java.lang.String
getChecksumColumn()
Get name of checksum column.protected java.lang.ClassLoader
getClassLoader()
Class loader used bymapRow(ResultSet, int)
.abstract java.util.Map<java.lang.String,AbstractGenericRowMapper.ColAttrMapping>
getColumnAttributeMappings()
Get DB table column -> BO attribute mappings.java.lang.String[]
getInsertColumns()
Get DB table column names used for inserting.abstract java.lang.String[]
getPrimaryKeyColumns()
Get primary-key column names.protected java.lang.Class<T>
getTypeClass()
abstract java.lang.String[]
getUpdateColumns()
Get DB table column names used for updating.T
mapRow(java.sql.ResultSet rs, int rowNum)
Transform a DB row fromResultSet
to a business object.java.lang.Object[]
valuesForColumns(T bo, java.lang.String... columns)
Extract attribute values from a BO for corresponding DB table columns
-
-
-
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 bymapRow(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 fromResultSet
to a business object.Note: Implementation should NOT call
ResultSet.next()
!- Specified by:
mapRow
in interfaceIRowMapper<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
-
-