亚洲综合社区欧美综合色-欧美逼逼一区二区三区-国产老熟女高潮精品网站-国产日韩最新视频在线看

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

Java 寫xml到 Oracle xmlType

發(fā)布時間:  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;
        }

 

}


本文出自:億恩科技【1tcdy.com】

服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機 24小時售后服務(wù)電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
      1
     
     
     
     

    0371-60135900
    7*24小時客服服務(wù)熱線