java 读取 xmltype_java操作XMLType的几种方法
XMLType是oracle數(shù)據庫特有的數(shù)據類型可以用來存儲一段xml,通過java(本文使用jdbc)插入XMLType根據sql中參數(shù)的類型通常有以下3種方法:
本文使用的數(shù)據庫為oracle10.2.1
一、String,客戶端只需傳遞一個字符串參數(shù),創(chuàng)建xmltype的任務完全交給數(shù)據庫,此方法數(shù)據庫的壓力最大
String sql = "insert into xmltable (XML)
values(sys.xmlType.createXML(?))";
String xmldata = "This is
an XML fragment";
ps.setString(1, xmldata);
ps.executeUpdate();
二、CLOB,在客戶端創(chuàng)建好CLOB傳入數(shù)據庫端通過oracle數(shù)據庫的XMLTYPE()函數(shù)構造成XMLType類型的值,此方法客戶端和數(shù)據庫端同時承擔了創(chuàng)建xmltype的任務,因此數(shù)據庫的壓力居中
Connection conn = ... ;//獲得Connection
PreparedStatement ps = ...;//獲得PreparedSatement
String sql = "insert into xmltable (XML)
values(XMLType(?))";
String xmldata = "This is
an XML fragment";
//通過conn創(chuàng)建CLOB
CLOB tempClob = CLOB.createTemporary(conn, false,
CLOB.DURATION_SESSION);?//打開CLOB
tempClob.open(CLOB.MODE_READWRITE);
//獲得writer
Writer clobWriter = clob.setCharacterStream(100);
//寫入數(shù)據
clobWriter.write(xmldata);?//刷新
clobWriter.flush();
//關閉writer
clobWriter.close();
//關閉CLOB
tempClob.close();
ps.setObject(1, tempClob);
ps.executeUpdate();
三、XMLType,客戶端傳遞一個XMLType給數(shù)據庫,此方法將創(chuàng)建xmltype的任務完全交給了客戶端,因此數(shù)據庫的壓力最小
Connection conn = ... ;//獲得Connection
PreparedStatement ps = ...;//獲得PreparedSatement
String sql = "insert into xmltable (XML) values(?)";
String xmldata = "This is an
XML fragment";
//創(chuàng)建一個XMLType對象
XMLType xmltype = XMLType.createXML(conn, xmldata);
ps.setObject(1, xmltype);
ps.executeUpdate();
以上三種方法通過插入20萬條數(shù)據測試比較發(fā)現(xiàn):
第一種方法:耗時最短,服務器cpu消耗最大
第二種方法:耗時最長,服務器cpu消耗居中
第三種方法:耗時居中,服務器cpu消耗最小
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的java 读取 xmltype_java操作XMLType的几种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浏阳河1916年古法贡藏42度酒价格
- 下一篇: 蟑螂可以用来做药吗?