Oracle DBからXMLTypeファイルをJavaアプリケーションにロードしました。 Java XMLTypeファイルの変更
public class XMLDoc {
private OraclePreparedStatement stmt;
private ResultSet rset;
private OracleResultSet orset;
private Document xml_column;
private XMLType poxml;
public XMLDoc(Connection con, String Query) throws Exception {
setStmt((OraclePreparedStatement)
con.prepareStatement(Query));
setRset(getStmt().executeQuery());
setOrset((OracleResultSet) rset);
}}
そして、メインプログラムに私がデータベースに接続し、xml_columnにXMLファイルを読み込む:私はこのようになります。これはXMLファイルの操作を処理するためのクラスを用意し今
Connection con = DriverManager.getConnection(host, username, password);
tables[5] = (new XMLDoc(con, "SELECT p.PENALITESXML FROM PENALITES p WHERE id_order='"+data.getIdOrder()+"'"));
while(tables[5].getOrset().next()) {
tables[5].setPoxml(XMLType.createXML(tables[5].getOrset().getOPAQUE("PENALITESXML")));
tables[5].setXml_column((Document)tables[5].getPoxml().getDocument());
Element element = tables[5].getXml_column().getDocumentElement();}
、私は思いますロードされたXMLドキュメントを変更するのが好きなので、実行します:
tables[5].getXml_column().getElementsByTagName("ISPAID").item(0).getChildNodes().item(0).setNodeValue("Y");
ただし、ドキュメントは更新されません。私は間違って何をしていますか?
これは、XMLファイルがどのように見えるかです:
<PENALITES ID_ORDER="50000">
<PENALTY_AMOUNT>100</PENALTY_AMOUNT>
<ISPAID>N</ISPAID>
</PENALITIES>
XMLを変更し、この変更を加えてデータベースを更新することは目的ですか?その場合は、なぜJavaを使用するのですか?データベース内のXMLを変更するだけです。 – MT0
私はXPathやXQueryのような他の方法があることを知っていますが、私はDOMを使ってアプリ内でそれを修正する必要があります。 – monterinio