Created
July 24, 2020 02:03
-
-
Save edegula/fa3dbabed395695dbdc9aa1823f08fbb to your computer and use it in GitHub Desktop.
Converting a JDBC Lookup DataBaseResult object to an XML
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public String executeQuery(Container container) throws StreamTransformation { | |
AbstractTrace trace = container.getTrace(); | |
trace.addInfo("Starting lookup"); | |
String sqlQuery = "SELECT PICKLIST_NUMBER, ITEMORDER, SAP_MATERIAL, DESCRIPTION, UOM, WEIGHT FROM MACRO_INGREDIENTS WHERE PICKLIST_NUMBER = '256' ORDER BY ITEMORDER"; | |
Map inputParam = new HashMap(); | |
inputParam.put(StreamTransformationConstants.MAPPING_TRACE, container.getTrace()); | |
DataBaseResult resultSet = JDBCLookupAPI.execute( | |
sqlQuery, | |
"SYSTEM_D", // Service | |
"JDBC_Receiver_QueryLookup", // Channel | |
inputParam | |
); | |
StringWriter writer = new StringWriter(); | |
try { | |
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); | |
DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); | |
// root elements | |
Document doc = docBuilder.newDocument(); | |
Element rootElement = doc.createElement("ResultSet"); | |
doc.appendChild(rootElement); | |
for (Iterator rows1 = resultSet.getRows(); rows1.hasNext();) // Iterating over the number of DB Rows | |
{ | |
Map rowMap = (Map) rows1.next(); | |
// add Record node | |
Element record = doc.createElement("Record"); | |
rootElement.appendChild(record); | |
trace.addInfo("----------- ROW -------------"); | |
// looping over keys | |
for (Object name : rowMap.keySet().toArray()) | |
{ | |
String value = rowMap.get(name.toString()).toString(); | |
trace.addInfo("Key = " + name + ", Value = " + value); | |
// add Record sub-nodes representing the columns of one result/record | |
Element element = doc.createElement(name.toString()); | |
element.appendChild(doc.createTextNode(value)); | |
record.appendChild(element); | |
} | |
} | |
TransformerFactory transformerFactory = TransformerFactory.newInstance(); | |
javax.xml.transform.Transformer transformer = transformerFactory.newTransformer(); | |
DOMSource source = new DOMSource(doc); | |
transformer.transform(source, new StreamResult(writer)); | |
trace.addInfo(writer.getBuffer().toString()); | |
} catch (ParserConfigurationException pce) { | |
pce.printStackTrace(); | |
} catch (TransformerException tfe) { | |
tfe.printStackTrace(); | |
} | |
return writer.getBuffer().toString(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment