private Object prepareDomParameterObject(ResultSet rs, ResultMapping mapping) throws SQLException { TypeHandlerFactory typeHandlerFactory = getDelegate().getTypeHandlerFactory(); Document doc = newDocument("parameter"); Probe probe = ProbeFactory.getProbe(doc); String complexName = mapping.getColumnName(); TypeHandler stringTypeHandler = typeHandlerFactory.getTypeHandler(String.class); if (complexName.indexOf('=') > -1) { // old 1.x style multiple params StringTokenizer parser = new StringTokenizer(complexName, "{}=, ", false); while (parser.hasMoreTokens()) { String propName = parser.nextToken(); String colName = parser.nextToken(); Object propValue = stringTypeHandler.getResult(rs, colName); probe.setObject(doc, propName, propValue.toString()); } } else { // single param Object propValue = stringTypeHandler.getResult(rs, complexName); probe.setObject(doc, "value", propValue.toString()); } return doc; }
private Object preparePrimitiveParameterObject(ResultSet rs, ResultMapping mapping, Class parameterType) throws SQLException { Object parameterObject; TypeHandlerFactory typeHandlerFactory = getDelegate().getTypeHandlerFactory(); TypeHandler th = typeHandlerFactory.getTypeHandler(parameterType); parameterObject = th.getResult(rs, mapping.getColumnName()); return parameterObject; }
public SqlMapConfiguration() { errorContext = new ErrorContext(); delegate = new SqlMapExecutorDelegate(); typeHandlerFactory = delegate.getTypeHandlerFactory(); client = new SqlMapClientImpl(delegate); registerDefaultTypeAliases(); }
private void initializeXmlResults(ResultSet rs) { try { List resultMappingList = new ArrayList(); ResultSetMetaData rsmd = rs.getMetaData(); for (int i = 0, n = rsmd.getColumnCount(); i < n; i++) { String columnName = getColumnIdentifier(rsmd, i + 1); ResultMapping resultMapping = new ResultMapping(); resultMapping.setPropertyName(columnName); resultMapping.setColumnName(columnName); resultMapping.setColumnIndex(i + 1); resultMapping.setTypeHandler(getDelegate().getTypeHandlerFactory().getTypeHandler(String.class)); resultMappingList.add(resultMapping); } setResultMappingList(resultMappingList); } catch (SQLException e) { throw new RuntimeException("Error automapping columns. Cause: " + e); } }
private void initializeMapResults(ResultSet rs) { try { List resultMappingList = new ArrayList(); ResultSetMetaData rsmd = rs.getMetaData(); for (int i = 0, n = rsmd.getColumnCount(); i < n; i++) { String columnName = getColumnIdentifier(rsmd, i + 1); 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); } }
private Object prepareDomParameterObject(ResultSet rs, ResultMapping mapping) throws SQLException { TypeHandlerFactory typeHandlerFactory = getDelegate().getTypeHandlerFactory(); Document doc = newDocument("parameter"); Probe probe = ProbeFactory.getProbe(doc); String complexName = mapping.getColumnName(); TypeHandler stringTypeHandler = typeHandlerFactory.getTypeHandler(String.class); if (complexName.indexOf('=') > -1) { // old 1.x style multiple params StringTokenizer parser = new StringTokenizer(complexName, "{}=, ", false); while (parser.hasMoreTokens()) { String propName = parser.nextToken(); String colName = parser.nextToken(); Object propValue = stringTypeHandler.getResult(rs, colName); probe.setObject(doc, propName, propValue.toString()); } } else { // single param Object propValue = stringTypeHandler.getResult(rs, complexName); probe.setObject(doc, "value", propValue.toString()); } return doc; }
public SqlMapConfiguration() { errorContext = new ErrorContext(); delegate = new SqlMapExecutorDelegate(); typeHandlerFactory = delegate.getTypeHandlerFactory(); client = new SqlMapClientImpl(delegate); registerDefaultTypeAliases(); }
private Object preparePrimitiveParameterObject(ResultSet rs, ResultMapping mapping, Class parameterType) throws SQLException { Object parameterObject; TypeHandlerFactory typeHandlerFactory = getDelegate().getTypeHandlerFactory(); TypeHandler th = typeHandlerFactory.getTypeHandler(parameterType); parameterObject = th.getResult(rs, mapping.getColumnName()); return parameterObject; }
private void initializeXmlResults(ResultSet rs) { try { List resultMappingList = new ArrayList(); ResultSetMetaData rsmd = rs.getMetaData(); for (int i = 0, n = rsmd.getColumnCount(); i < n; i++) { String columnName = getColumnIdentifier(rsmd, i + 1); ResultMapping resultMapping = new ResultMapping(); resultMapping.setPropertyName(columnName); resultMapping.setColumnName(columnName); resultMapping.setColumnIndex(i + 1); resultMapping.setTypeHandler(getDelegate().getTypeHandlerFactory().getTypeHandler(String.class)); resultMappingList.add(resultMapping); } setResultMappingList(resultMappingList); } catch (SQLException e) { throw new RuntimeException("Error automapping columns. Cause: " + e); } }
private void initializeMapResults(ResultSet rs) { try { List resultMappingList = new ArrayList(); ResultSetMetaData rsmd = rs.getMetaData(); for (int i = 0, n = rsmd.getColumnCount(); i < n; i++) { String columnName = getColumnIdentifier(rsmd, i + 1); 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); } }
private void initializePrimitiveResults(ResultSet rs) { try { ResultSetMetaData rsmd = rs.getMetaData(); String columnName = getColumnIdentifier(rsmd, 1); ResultMapping resultMapping = new ResultMapping(); resultMapping.setPropertyName(columnName); resultMapping.setColumnName(columnName); resultMapping.setColumnIndex(1); resultMapping.setTypeHandler(getDelegate().getTypeHandlerFactory().getTypeHandler(getResultClass())); List resultMappingList = new ArrayList(); resultMappingList.add(resultMapping); setResultMappingList(resultMappingList); } catch (SQLException e) { throw new RuntimeException("Error automapping columns. Cause: " + e); } }
private void initializePrimitiveResults(ResultSet rs) { try { ResultSetMetaData rsmd = rs.getMetaData(); String columnName = getColumnIdentifier(rsmd, 1); ResultMapping resultMapping = new ResultMapping(); resultMapping.setPropertyName(columnName); resultMapping.setColumnName(columnName); resultMapping.setColumnIndex(1); resultMapping.setTypeHandler(getDelegate().getTypeHandlerFactory().getTypeHandler(getResultClass())); List resultMappingList = new ArrayList(); resultMappingList.add(resultMapping); setResultMappingList(resultMappingList); } catch (SQLException e) { throw new RuntimeException("Error automapping columns. Cause: " + e); } }
private void initialize(ResultSet rs) { if (getResultClass() == null) { throw new SqlMapException("The automatic ResultMap named " + this.getId() + " had a null result class (not allowed)."); } else 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 initialize(ResultSet rs) { if (getResultClass() == null) { throw new SqlMapException("The automatic ResultMap named " + this.getId() + " had a null result class (not allowed)."); } else 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); } }
public void newTypeHandler(Class javaType, String jdbcType, Object callback) { try { errorContext.setActivity("building a building custom type handler"); TypeHandlerFactory typeHandlerFactory = client.getDelegate().getTypeHandlerFactory(); TypeHandler typeHandler; if (callback instanceof TypeHandlerCallback) { typeHandler = new CustomTypeHandler((TypeHandlerCallback) callback); } else if (callback instanceof TypeHandler) { typeHandler = (TypeHandler) callback; } else { throw new RuntimeException("The object '" + callback + "' is not a valid implementation of TypeHandler or TypeHandlerCallback"); } errorContext.setMoreInfo("Check the javaType attribute '" + javaType + "' (must be a classname) or the jdbcType '" + jdbcType + "' (must be a JDBC type name)."); if (jdbcType != null && jdbcType.length() > 0) { typeHandlerFactory.register(javaType, jdbcType, typeHandler); } else { typeHandlerFactory.register(javaType, typeHandler); } } catch (Exception e) { throw new SqlMapException("Error registering occurred. Cause: " + e, e); } errorContext.setMoreInfo(null); errorContext.setObjectId(null); }
public void newTypeHandler(Class javaType, String jdbcType, Object callback) { try { errorContext.setActivity("building a building custom type handler"); TypeHandlerFactory typeHandlerFactory = client.getDelegate().getTypeHandlerFactory(); TypeHandler typeHandler; if (callback instanceof TypeHandlerCallback) { typeHandler = new CustomTypeHandler((TypeHandlerCallback) callback); } else if (callback instanceof TypeHandler) { typeHandler = (TypeHandler) callback; } else { throw new RuntimeException("The object '" + callback + "' is not a valid implementation of TypeHandler or TypeHandlerCallback"); } errorContext.setMoreInfo("Check the javaType attribute '" + javaType + "' (must be a classname) or the jdbcType '" + jdbcType + "' (must be a JDBC type name)."); if (jdbcType != null && jdbcType.length() > 0) { typeHandlerFactory.register(javaType, jdbcType, typeHandler); } else { typeHandlerFactory.register(javaType, typeHandler); } } catch (Exception e) { throw new SqlMapException("Error registering occurred. Cause: " + e, e); } errorContext.setMoreInfo(null); errorContext.setObjectId(null); }
public void setDiscriminator(String columnName, Integer columnIndex, Class javaClass, String jdbcType, String nullValue, Object typeHandlerImpl) { TypeHandler handler; if (typeHandlerImpl != null) { if (typeHandlerImpl instanceof TypeHandlerCallback) { handler = new CustomTypeHandler((TypeHandlerCallback) typeHandlerImpl); } else if (typeHandlerImpl instanceof TypeHandler) { handler = (TypeHandler) typeHandlerImpl; } else { throw new RuntimeException("The class '' is not a valid implementation of TypeHandler or TypeHandlerCallback"); } } else { handler = config.resolveTypeHandler(client.getDelegate().getTypeHandlerFactory(), resultMap.getResultClass(), "", javaClass, jdbcType, true); } ResultMapping mapping = new ResultMapping(); mapping.setColumnName(columnName); mapping.setJdbcTypeName(jdbcType); mapping.setTypeHandler(handler); mapping.setNullValue(nullValue); mapping.setJavaType(javaClass); if (columnIndex != null) { mapping.setColumnIndex(columnIndex.intValue()); } discriminator = new Discriminator(delegate, mapping); resultMap.setDiscriminator(discriminator); }
public void setDiscriminator(String columnName, Integer columnIndex, Class javaClass, String jdbcType, String nullValue, Object typeHandlerImpl) { TypeHandler handler; if (typeHandlerImpl != null) { if (typeHandlerImpl instanceof TypeHandlerCallback) { handler = new CustomTypeHandler((TypeHandlerCallback) typeHandlerImpl); } else if (typeHandlerImpl instanceof TypeHandler) { handler = (TypeHandler) typeHandlerImpl; } else { throw new RuntimeException("The class '' is not a valid implementation of TypeHandler or TypeHandlerCallback"); } } else { handler = config.resolveTypeHandler(client.getDelegate().getTypeHandlerFactory(), resultMap.getResultClass(), "", javaClass, jdbcType, true); } ResultMapping mapping = new ResultMapping(); mapping.setColumnName(columnName); mapping.setJdbcTypeName(jdbcType); mapping.setTypeHandler(handler); mapping.setNullValue(nullValue); mapping.setJavaType(javaClass); if (columnIndex != null) { mapping.setColumnIndex(columnIndex.intValue()); } discriminator = new Discriminator(delegate, mapping); resultMap.setDiscriminator(discriminator); }
private void applyInlineParameterMap(MappedStatement statement, String sqlStatement) { String newSql = sqlStatement; errorContext.setActivity("building an inline parameter map"); ParameterMap parameterMap = statement.getParameterMap(); errorContext.setMoreInfo("Check the inline parameters."); if (parameterMap == null) { ParameterMap map; map = new ParameterMap(client.getDelegate()); map.setId(statement.getId() + "-InlineParameterMap"); map.setParameterClass(statement.getParameterClass()); map.setResource(statement.getResource()); statement.setParameterMap(map); SqlText sqlText = PARAM_PARSER.parseInlineParameterMap(client.getDelegate().getTypeHandlerFactory(), newSql, statement.getParameterClass()); newSql = sqlText.getText(); List mappingList = Arrays.asList(sqlText.getParameterMappings()); map.setParameterMappingList(mappingList); } Sql sql; if (SimpleDynamicSql.isSimpleDynamicSql(newSql)) { sql = new SimpleDynamicSql(client.getDelegate(), newSql); } else { sql = new StaticSql(newSql); } statement.setSql(sql); }
private void applyInlineParameterMap(MappedStatement statement, String sqlStatement) { String newSql = sqlStatement; errorContext.setActivity("building an inline parameter map"); ParameterMap parameterMap = statement.getParameterMap(); errorContext.setMoreInfo("Check the inline parameters."); if (parameterMap == null) { ParameterMap map; map = new ParameterMap(client.getDelegate()); map.setId(statement.getId() + "-InlineParameterMap"); map.setParameterClass(statement.getParameterClass()); map.setResource(statement.getResource()); statement.setParameterMap(map); SqlText sqlText = PARAM_PARSER.parseInlineParameterMap(client.getDelegate().getTypeHandlerFactory(), newSql, statement.getParameterClass()); newSql = sqlText.getText(); List mappingList = Arrays.asList(sqlText.getParameterMappings()); map.setParameterMappingList(mappingList); } Sql sql; if (SimpleDynamicSql.isSimpleDynamicSql(newSql)) { sql = new SimpleDynamicSql(client.getDelegate(), newSql); } else { sql = new StaticSql(newSql); } statement.setSql(sql); }