始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

Java 写xml到 Oracle xmlType

发布时间:  2012/8/22 16:49:05

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;
        }

 

}


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      0
     
     
     
     

    0371-60135900
    7*24小时客服服务热线