2015-05-06 6 views
6

मुझे केवल एक तालिका में ओरेकल डेटाबेस में कुछ डेटा डालने की आवश्यकता है और कोई संबंध नहीं है।ओरेकल डेटाबेस में 50 के रिकॉर्ड कैसे सम्मिलित करें?

मुझे उसी लेनदेन में 50K से अधिक रिकॉर्ड डालने की आवश्यकता है। इसे करने का बेहतरीन तरीका क्या है? शुद्ध JDBC, JPA या Hibernate आदि का उपयोग ...

किस तरह से (कच्चे अद्यतन द्वारा बैच अपडेट या कच्चे) एक ही लेनदेन में लगभग 50000 रिकॉर्ड डालने के लिए बेहतर है?

+0

आप कुछ बैच प्रोसेसिंग के साथ जा सकते हैं। –

+2

50k रिकॉर्ड छोटे हैं, कुछ भी ऐसा कर सकता है। आप वास्तव में क्या समस्या है? – Mat

+0

कौन सी एपीआई बेहतर है? शुद्ध जेडीबीसी या जेपीए ... – user3496599

उत्तर

4

हाइबरनेट:

session.save(Object);

  • flush() और clear() अपने सत्र बैच अद्यतन का उपयोग कर आप अपने डेटा सम्मिलित कर सकते हैं,

    1. पहले सत्र में सभी वस्तु को बचाने

    if ((batchCounter % 25000) == 0) { 
        session.flush(); 
        session.clear(); 
    } 
    
    1. सभी डेटा

      tx.commit();

  • +0

    कौन सा एपीआई सर्वोत्तम है? शुद्ध जेडीबीसी या जेपीए आदि ... – user3496599

    +0

    जेपीए काम करने के लिए अच्छा एपीआई है, मान लीजिए कि आपका डेटाबेस बदल गया है .... जेपीए आपकी मदद करेगा .... इसमें कई फायदे हैं ... –

    1

    आप जावा JDBC बयान तैयार उपयोग कर सकते हैं प्रतिबद्ध होते हैं।

    // Create SQL statement 
    String SQL = "INSERT INTO Employee (id, first, last, age) " + 
          "VALUES(?, ?, ?, ?)"; 
    
    // Create PreparedStatement object 
    PreparedStatemen pstmt = conn.prepareStatement(SQL); 
    
    // Set auto-commit to false 
    conn.setAutoCommit(false); 
    
    // Set the variables 
    pstmt.setInt(1, 400); 
    pstmt.setString(2, "x"); 
    pstmt.setString(3, "y"); 
    pstmt.setInt(4, 33); 
    
    // Add it to the batch 
    pstmt.addBatch(); 
    
    // Set the variables 
    pstmt.setInt(1, 401); 
    pstmt.setString(2, "p"); 
    pstmt.setString(3, "q"); 
    pstmt.setInt(4, 31); 
    
    // Add it to the batch 
    pstmt.addBatch(); 
    
    // Create an int[] to hold returned values 
    int[] count = stmt.executeBatch(); 
    
    // Explicitly commit statements to apply changes 
    conn.commit(); 
    
    +0

    कौन सी एपीआई सबसे अच्छी है? शुद्ध जेडीबीसी या जेपीए आदि ... – user3496599

    +0

    यह आवश्यकता के आधार पर तय किया जाता है। यदि आपकी परियोजना हाइबरनेट है, तो इसके साथ जाएं। – Thilak

    संबंधित मुद्दे