Преобразование StreamResult в CLOB: Java - PullRequest
0 голосов
/ 05 декабря 2018

Я читаю столбец CLOB из Oracle, содержимое которого представляет собой файл XML.

<msa:data>
<msa:supplier_code>TP-0000005098</msa:supplier_code>
<msa:supplier_name>XYZ</msa:supplier_name>
</msa:data>

Теперь моя цель состоит в том, чтобы изменить элемент имя_поставщика , чтобы сказать ABC, и сохранить этот XML обратно в базу данных.

Я написал следующий код для достижения того же.

Clob xmlClob = SupplierDao.getByCode("TP-0000005098");
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(xmlClob.getAsciiStream());
NodeList dataList = doc.getElementsByTagName("msa:supplier_name");
dataList.item(0).setTextContent("ABC");
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
Source source = new DOMSource(doc);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
Result result = new StreamResult(outputStream);
transformer.transform(source, result);

Теперь я хочу снова преобразовать StreamResult обратно в объект Clob (java.sql.Clob), чтобы сохранить его обратно в базу данных.Как мне этого добиться?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...