乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      java調(diào)用存儲(chǔ)過(guò)程實(shí)現(xiàn)批量入庫(kù)

       168一路發(fā) 2011-03-22
      在處理大量日志數(shù)據(jù)庫(kù)入庫(kù)時(shí),為了提高速度我們經(jīng)常用的策略就是批量入庫(kù),而不是單條數(shù)據(jù)提交。
      為了最大程度上發(fā)揮Oracle的性能,可以考慮采用存儲(chǔ)過(guò)程、type組合來(lái)實(shí)現(xiàn)批量入庫(kù)。
      1、創(chuàng)建type
      CREATE OR REPLACE TYPE type_object AS OBJECT
      (
        ID  NUMBER,
        DAY DATE,
        STR VARCHAR2(100)
      )
       
      CREATE OR REPLACE TYPE ARRAY_object
        AS table OF type_object
      2、創(chuàng)建表
      create table T_OBJECT
      (
        ID  NUMBER,
        DAY DATE,
        STR VARCHAR2(100)
      )
      3、創(chuàng)建存儲(chǔ)過(guò)程,收入?yún)?shù)就是ARRAY_object類(lèi)型。
      create or replace procedure p_batch_insert(i_object in array_object) is
      begin
        insert into t_object
          (id, day, str)
          select id, day, str
            from the (select cast(i_object as array_object) from dual);
      end p_batch_insert;
      4、測(cè)試的JAVA程序
      package com;
      import java.sql.*;
      import com.timesten.jdbc.TimesTenDataSource;
      import oracle.jdbc.OraclePreparedStatement;

      public class Test4 {
       public static void main(String arg[]) {
        try {
         Class.forName("oracle.jdbc.driver.OracleDriver");
         //Class.forName("com.timesten.jdbc.TimesTenDriver");
         String url="jdbc:oracle:thin:@192.168.6.100:1521:logstat1";
        // String url = "jdbc:timesten:direct:dsn=ttdemo;uid=logstat;pwd=logstat;ORACLEID=logstat_214;OraclePWD=logstat";
         Connection con = DriverManager.getConnection(url, "logstat","logstat");
            /*TimesTenDataSource ds = new TimesTenDataSource();
          ds.setUrl(url);
          Connection con = ds.getConnection();
         */
         PreparedStatement  pstmt = null;
         //oracle.jdbc.OraclePreparedStatement pstmt = null;
        
          String sql = "{call p_batch_insert(?)}";
         
         pstmt = con.prepareCall(sql);
         //pstmt =(OraclePreparedStatement) con.prepareCall(sql);
         Object[][]  object1=new Object[100][3];
        for ( int i=0;i<100;i++){
         object1[i][0]=new Long(i); 
         object1[i][1]=new java.sql.Date(new java.util.Date().getTime());
         String str = "this is a test"+i;
         object1[i][2]= str;
        } 
         
          oracle.sql.ArrayDescriptor desc = oracle.sql.ArrayDescriptor.createDescriptor("ARRAY_OBJECT",con);
         oracle.sql.ARRAY array = new oracle.sql.ARRAY(desc,con,object1);
        
         pstmt.setArray(1, array);
         pstmt.executeUpdate();
         //pstmt.executeBatch();
          //con.commit();
          //con.setAutoCommit(true);
        } catch (Exception e) {
         e.printStackTrace();
         //System.out.println(e.toString());
        }
       }
      }
      我們也可以在存儲(chǔ)過(guò)程中做一些其它邏輯運(yùn)算,速度要提高不少。
       
      備注:如果在入庫(kù)的過(guò)程中發(fā)現(xiàn)字符串的值沒(méi)有入進(jìn)去,請(qǐng)檢查有沒(méi)有加載該類(lèi)庫(kù)nls_charset12.jar

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多