Listing 1: Inserting Data with a SQLXML Object - XML Data Set Using setCharacterStream()

sql = "insert into xmlTable values (?, ?)";
PreparedStatement prepStmt = con.prepareStatement(sql);

String xmlStr = "<MyXMLData> ... </MyXMLData>";

SQLXML sqlXML = con.createSQLXML();
Writer xmlWriter = sqlXML.setCharacterStream();

xmlWriter.write(xmlStr);
xmlWriter.close();

prepStmt.setInt(1, 7);
prepStmt.setSQLXML(2, sqlXML);
prepStmt.executeUpdate();

Listing 2: Inserting Data with a SQLXML Object - XML Data Set Using DOMResult

File xmlFile = new File("Addresses.xml");

// Get a DOM Document
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
docBuilderFactory.setNamespaceAware(true);

DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse(xmlFile);

sql = "insert into xmlTable values (?, ?)";
PreparedStatement prepStmt = con.prepareStatement(sql);
 
sqlXML = con.createSQLXML();

DOMResult domResult = (DOMResult) sqlXML.setResult(DOMResult.class);
domResult.setNode(doc);

prepStmt.setInt(1, 9);
prepStmt.setSQLXML(2, sqlXML);
prepStmt.executeUpdate();


Listing 3: Retrieving Data with a SQLXML Object - XML Data Read Using an XMLStreamReader

String sql = "select id, xmlCol from xmlTable";
resultSet = stmt.executeQuery(sql);
while (resultSet.next()) {

   id = resultSet.getInt(1);

   SQLXML sqlXML = resultSet.getSQLXML(2);
   StAXSource staxSource = (StAXSource) sqlXML.getSource(StAXSource.class);
   XMLStreamReader xmlReader = staxSource.getXMLStreamReader();
 ?   // Process the StAX events using xmlReader
}


Listing 4: Constructing an XML Result

Select
   c.CustId,
      xmlelement(name customer,
         xmlelement(name name, c.Name),
         xmlelement(name address, c.Address)) as CustInfo
from Customers c