XMLType是oracle数据库特有的数据类型可以用来存储一段xml,通过java(本文使用jdbc)插入XMLType根据sql中参数的类型通常有以下3种方法:
[color=red]本文使用的数据库为oracle10.2.1[/color]
一、String,客户端只需传递一个字符串参数,创建xmltype的任务完全交给数据库,此方法数据库的压力最大

             String sql = "insert into xmltable (XML) values(sys.xmlType.createXML(?))";             String xmldata = "<label>This is an XML fragment</label>";             ps.setString(1, xmldata);             ps.executeUpdate();

二、CLOB,在客户端创建好CLOB传入数据库端通过oracle数据库的XMLTYPE()函数构造成XMLType类型的值,此方法客户端和数据库端同时承担了创建xmltype的任务,因此数据库的压力居中

             Connection conn = ... ;//获得Connection             PreparedStatement ps = ...;//获得PreparedSatement

             String sql = "insert into xmltable (XML) values(XMLType(?))";             String xmldata = "<label>This is an XML fragment</label>";

             //通过conn创建CLOB             CLOB tempClob = CLOB.createTemporary(conn, false, CLOB.DURATION_SESSION);              //打开CLOB             tempClob.open(CLOB.MODE_READWRITE);             //获得writer             Writer clobWriter = clob.setCharacterStream(100);             //写入数据             clobWriter.write(xmldata);             //刷新             clobWriter.flush();             //关闭writer             clobWriter.close();             //关闭CLOB             tempClob.close();

             ps.setObject(1, tempClob);             ps.executeUpdate();

三、XMLType,客户端传递一个XMLType给数据库,此方法将创建xmltype的任务完全交给了客户端,因此数据库的压力最小

             Connection conn = ... ;//获得Connection             PreparedStatement ps = ...;//获得PreparedSatement

             String sql = "insert into xmltable (XML) values(?)";             String xmldata = "<label>This is an XML fragment</label>";             //创建一个XMLType对象             XMLType xmltype = XMLType.createXML(conn, xmldata);

             ps.setObject(1, xmltype);             ps.executeUpdate();

以上三种方法通过插入20万条数据测试比较发现:
第一种方法:耗时最短,服务器cpu消耗最大
第二种方法:耗时最长,服务器cpu消耗居中
第三种方法:耗时居中,服务器cpu消耗最小

[b]如果有谁知道其他方法请务必留言,感激不尽![/b]

[table]|[url="http://s.click.taobao.com/a/qXMXdhyM2l4=-14390488"][img]http://image.taobao.com/bao/uploaded/http://img08.taobaocdn.com/bao/uploaded/i8/T1EU4qXmhdXXcIVTHb_095348.jpg_sum.jpg[/img][/url][url="http://s.click.taobao.com/a/qXMXdhyM2l4=-14390488"]皇冠信誉◆清风通讯-[b][size=medium]黑莓体验中心-BLACKBERRY[/size][/b]全面支持货到付款[/url][url="http://s.click.taobao.com/a/qXMXdhyM2l4=-14390488"][img]http://img.alimama.cn/images/tbk/cps/fgetccode_btn.gif[/img][/url][/table]
[b][size=medium][i][align=left][color=red][img]http://img.tongji.linezing.com/729225/tongji.gif[/img]真诚希望朋友们能留下宝贵意见,不甚感激![/color][/align][/i][/size][/b]

java操作XMLType的几种方法相关推荐

  1. java 读取 xmltype_java操作XMLType的几种方法

    XMLType是oracle数据库特有的数据类型可以用来存储一段xml,通过java(本文使用jdbc)插入XMLType根据sql中参数的类型通常有以下3种方法: 本文使用的数据库为oracle10 ...

  2. 详解Java解析XML的四种方法

    http://developer.51cto.com  2009-03-31 13:12  cnlw1985  javaeye  我要评论(8) XML现在已经成为一种通用的数据交换格式,平台的无关性 ...

  3. Java 创建线程的三种方法比较

    在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,本文主要讲述Java 创建线程的三种方法比较, 更多Java专业知识,广州疯狂jav ...

  4. Java文件写入的6种方法

    写程序时经常会碰到读写文件的场景,在Java中操作文件的方法本质上只有两种:字符流和字节流,而他们的实现类又有很多,因此,有时候用起来,就会比较乱. 这篇文章系统介绍了Java操作文件的几种方式,学习 ...

  5. java操作Excel有两种方式 方式1:jxl操作Excel jxl的API

    java操作Excel有两种方式 方式1:jxl操作Excel 方式2:poi操作Excel 下面介绍jxl API: 使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用 ...

  6. Mysql使用binlog恢复数据解决误操作问题的两种方法

    Mysql使用binlog恢复数据解决误操作问题的两种方法 参考文章: (1)Mysql使用binlog恢复数据解决误操作问题的两种方法 (2)https://www.cnblogs.com/Data ...

  7. java解析xml的三种方法

    java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax;import org.xml.sax.Attributes; import org.xml.sax.SAXEx ...

  8. java多线程同步的四种方法_java中实现多线程的两种方法

    java多线程有几种实现方法,都是什么?同步有几种实java中多线程的实现方法有两种:1.直接继承thread类:2.实现runnable接口:同步的实现方法有五种:1.同步方法:2.同步代码块:3. ...

  9. java 字符串截取的几种方式 java获取当前路径的几种方法

    java 字符串截取的几种方式: https://blog.csdn.net/qq_27603235/article/details/51604584 java获取当前路径的几种方法: https:/ ...

最新文章

  1. php中控制面板折叠,微信小程序折叠面板的实现方法示例
  2. 解决chrome安装扩展插件导入.crx文件提示:程序包无效的错误
  3. 告警系统的一些痛点思考
  4. android 获取当前时间_js如何获取当前时间并显示
  5. 一张图读懂什么是专属分布式存储
  6. 立体剪纸风新春农历春节PSD分层海报素材
  7. 线程的五大状态及转换
  8. 品牌就是复购,运营就是零售
  9. 《马志军20岁书法作品集》序
  10. 王建宙称乔布斯故意展开TD-LTE版iPhone
  11. 拓端tecdat|数据类岗位需求的数据面
  12. ipq8064 openwrt 上KGDB工作不正常
  13. 2021年胡润中国百富榜研究报告
  14. 苹果拼图软件测试,趣图制作测试——拼图+水印+表情
  15. 河大计算机学院足球队,“河大杯”我院足球队两连胜提前晋级淘汰赛
  16. Redis原理(Replication、Sentinel、Twemproxy、RedisCluster)
  17. 【HTTP协议其实很简单】03.自己写一个微型静态Web服务器
  18. 基于FFMPEG水印添加---avfilter库
  19. html5设置单元格行高,单元格的行高怎么设置 EXCEL文档怎么统一设置行高
  20. word中行与行间距大

热门文章

  1. Eureqa Formulize从实验数据中自动筛选函数关系的symbolic regression符号回归软件
  2. 微信小程序真机调试无法连接websocket解决方案
  3. 韩国两大火暴美女迪厅拼舞 精彩视频
  4. pointnet个人理解与实践
  5. 20170704总结
  6. [WPF] WPF做的漂亮的登陆界面[附源码]
  7. Android apk上架国内应用市场流程
  8. [转载] iframe嵌入网页的用法
  9. MacBookPro M2芯片下如何搭建React-Native环境
  10. 软件安装管家软件目录(2020年11月最新)