源代码如下:
private void initialize(ResultSet rs) {
if (getResultClass() == null)
throw new SqlMapException("The automatic ResultMap named " + getId() + " had a null result class (not allowed).");
if (Map.class.isAssignableFrom(getResultClass()))
initializeMapResults(rs);
else if (getDelegate().getTypeHandlerFactory().getTypeHandler(getResultClass()) != null)
initializePrimitiveResults(rs);
else if (DomTypeMarker.class.isAssignableFrom(getResultClass()))
initializeXmlResults(rs);
else
initializeBeanResults(rs);
}
private void initializeMapResults(ResultSet rs) {
try {
List resultMappingList = new ArrayList();
ResultSetMetaData rsmd = rs.getMetaData();
int i = 0; for (int n = rsmd.getColumnCount(); i < n; i++) {
String columnName = getColumnIdentifier(rsmd, i + 1);
columnName=columnName.toUpperCase();//将KEY转为大写,保持一致性
ResultMapping resultMapping = new ResultMapping();
resultMapping.setPropertyName(columnName);
resultMapping.setColumnName(columnName);
resultMapping.setColumnIndex(i + 1);
resultMapping.setTypeHandler(getDelegate().getTypeHandlerFactory().getTypeHandler(Object.class));
resultMappingList.add(resultMapping);
}
setResultMappingList(resultMappingList);
}
catch (SQLException e) {
throw new RuntimeException("Error automapping columns. Cause: " + e);
}
}