当前位置:  数据库>oracle

Java 写xml到 Oracle xmlType

    来源: 互联网  发布时间:2017-04-03

    本文导语: import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.Reader;import java.io.Writer;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatem...

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;














import Oracle.sql.BLOB;
import oracle.sql.CLOB;

public class TestXMLType {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Connection conn = null;
        try
        {
            //need input the name of manager
            //add the picture's path
            String strName = "test";
            String strPhoto = "C:/test.xml";
            Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();











            String str="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
           
            conn = DriverManager.getConnection(str,"scott","tigger");
           
          
            InputStream ins = null;
            StringBuffer buffer = new StringBuffer();
            ins = new FileInputStream(new File("C:/test.xml"));
           
            byte[] tmp = new byte[10];
            int length = 0;
            while((length = ins.read(tmp)) != -1)
            {
            buffer.append(new String(tmp,0,length));
            }
           
            ins.close();
            insertXML(buffer.toString(),conn);
                       
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
        finally
        {
            if(conn != null)
            {
                try {
                    conn.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }           
        }
    }
   
    private static void insertXML(String xmlData, Connection conn) {
          CLOB clob = null;
          String query;
            // Initialize statement Object
          PreparedStatement pstmt = null;
          try{
            query = "INSERT INTO zxx_xml VALUES (?,XMLType(?)) ";
            // Get the statement Object
            pstmt = conn.prepareStatement(query);
        
            // xmlData is the string that contains the XML Data.
            // Get the CLOB object using the getCLOB method.
            clob = getCLOB(xmlData, conn);
            // Bind this CLOB with the prepared Statement
            pstmt.setString(1, "F000002LNW");
            pstmt.setObject(2, clob);
            // Execute the Prepared Statement
            if (pstmt.executeUpdate () == 1) {
            System.out.println ("Successfully inserted a Purchase Order");
            }
          } catch(SQLException sqlexp){
            sqlexp.printStackTrace();
          } catch(Exception exp){
            exp.printStackTrace();
          }
    }
   
    private static CLOB getCLOB(String xmlData, Connection conn) throws SQLException{
          CLOB tempClob = null;
          try{
            // If the temporary CLOB has not yet been created, create one
            tempClob = CLOB.createTemporary(conn, true, CLOB.DURATION_SESSION);
        
            // Open the temporary CLOB in readwrite mode, to enable writing
            tempClob.open(CLOB.MODE_READWRITE);
            // Get the output stream to write
            Writer tempClobWriter = tempClob.getCharacterOutputStream();
            // Write the data into the temporary CLOB
            tempClobWriter.write(xmlData);
        
            // Flush and close the stream
            tempClobWriter.flush();
            tempClobWriter.close();
        
            // Close the temporary CLOB
            tempClob.close();   
          } catch(SQLException sqlexp){
            tempClob.freeTemporary();
            sqlexp.printStackTrace();
          } catch(Exception exp){
            tempClob.freeTemporary();
            exp.printStackTrace();
          }
          return tempClob;
        }



























































































 

}


    
 
 

您可能感兴趣的文章:

  • java命名空间javax.xml.bind.annotation类xmltype.default的类成员方法: xmltype.default定义及介绍
  • java命名空间javax.xml.bind.annotation注释类型xmltype的类成员方法: name定义及介绍
  • java命名空间javax.xml.bind.annotation注释类型xmltype的类成员方法: factorymethod定义及介绍
  • java命名空间javax.xml.bind.annotation注释类型xmltype的类成员方法: namespace定义及介绍
  • java命名空间javax.xml.bind.annotation注释类型xmltype的类成员方法: factoryclass定义及介绍
  • java命名空间javax.xml.bind.annotation注释类型xmltype的类成员方法: proporder定义及介绍
  • com.Oracle.*;是指相对于当前目录下的COM下的ORACLE吗?java是怎么寻找PACKAGE的?
  • Linux系统下利用java连接Oracle 10G
  • 再问java 连接oracle 问题,急!
  • oracle和Java的连接,急!!
  • JAVA连接ORACLE问题(100分)
  • 怎么在java里调用一个oracle的procedure呢?
  • java与oracle
  • FSF反对Oracle起诉Google侵犯Java专利的起诉
  • 怎么在java中向一个sql语句传参数,就像oracle的proc一样啊?
  • 为什么在编译java程序的时候出现oracle.jdbc.driver不存在?急!!!
  • 如何获取java连接oracle的驱动?
  • Web服务器/前端 iis7站长之家
  • java.lang.NoClassDefFoundError: oracle/jdbc/pool/OracleDataSource
  • 在java中能不能调用oracle的package
  • 求教 JAVA 连Oracle数据库。
  • 请教一个关于java中连接远程oracle数据库的问题
  • redhat 9 下安装 oracle9i 过程中,要求指定java目录,到底是哪一个目录?
  • 请问如何用Java从Oracle数据库中读取媒体文件,如图片,mpeg 等
  • 请教怎样在虚拟机中的linux系统安装 Java环境以及Oracle
  • 谁有java编写的连接 oracle9i的例子 急100
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.xml类xmlconstants的类成员方法: xml_ns_prefix定义及介绍
  • Java的XML解析器 xml-utilities
  • java命名空间javax.xml类xmlconstants的类成员方法: xml_ns_uri定义及介绍
  • 怎么没有讨论XML的?哪位高手介绍介绍在JAVA中怎么使用XML?
  • java命名空间javax.xml.transform类outputkeys成员方法: omit_xml_declaration定义参考
  • Java 和XML 编程时,XML的DTD 放到哪?
  • java命名空间javax.xml类xmlconstants的类成员方法: xml_dtd_ns_uri定义及介绍
  • 学 XML 哪本书好。(不要求成为XML高手,请从JAVA程序员的角度出发)
  • java命名空间javax.xml类xmlconstants的类成员方法: w3c_xml_schema_ns_uri定义及介绍
  • 请问各位:我用SUN公司的JAXP开发包解析XML文档,可不知道对XML解析后如何将结果写回文件中。请各位熟悉Java和XML的高手帮忙。
  • java命名空间javax.xml类xmlconstants的类成员方法: w3c_xml_schema_instance_ns_uri定义及介绍
  • 那里有利用JAXP 1.2处理XML(基于XML Schema,而不是DTD)的JAVA程序例子!!! 200分!!!
  • java命名空间javax.xml.soap类soapmessage成员方法: write_xml_declaration定义参考
  • 在眾多的java xml parser中,那種解析器速度最快(xml 文件較大)
  • java命名空间javax.xml.stream接口xmlstreamreader成员方法: getversion定义参考
  • 看了半本,是关于java与xml编程的书,它用xml来代替数据库,试问,xml真的能开题数据库吗?(在性能方面)
  • java命名空间javax.xml.stream.events接口startdocument成员方法: getversion定义参考
  • 好象在xml专栏或java专栏都可以问这个问题-xml、jsp高手请进
  • java命名空间javax.xml.bind类jaxbelement<t>的类成员方法: scope定义及介绍
  • Java的XML开发包 JAXB
  • java命名空间javax.xml.transform.stream类streamsource成员方法: setreader定义参考
  • java解析xml之jdom解析xml示例分享
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3