java - डीबीसीपी में तैयार किए गए स्टाटेमेंट पूलिंग का उपयोग करना




prepared-statement connection-pooling (2)

पूल बनाम "नॉन-पूलिंग" कनेक्शन से कनेक्शन प्राप्त करने के बारे में अच्छी तरह से बात करते हुए, क्या आपके कोड में कोई बदलाव है? मुझे यकीन है तुम नहीं तैयार बयान के साथ उसी तरह आपका कोड बदलना नहीं चाहिए। इसलिए, इसके लिए कोई उपयोगी कोड उदाहरण नहीं है।

आपको अपने जेडीबीसी डेटा स्रोत कार्यान्वयन के लिए दस्तावेज़ पढ़ना चाहिए और देखें कि डेवलपर्स को पूलिंग के बारे में क्या कहना है। इस पर विश्वसनीय जानकारी का कोई अन्य स्रोत नहीं है

यहां से : इस घटक में तैयारी की तैयारी की क्षमता भी है। सक्षम होने पर प्रत्येक कनेक्शन के लिए एक निवेदन पूल बनाया जाएगा और निम्न विधियों में से एक द्वारा तैयार की गई तैयारी जमा की जाएगी:

* public PreparedStatement prepareStatement(String sql)
* public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency)

तो, आप सिर्फ तैयार स्थिति () कॉल का उपयोग करते रहें और सिद्धांत में आपका डीबीसीपी पूलिंग का ख्याल रखेगा (यानी यदि आप "यूज़र्स यूज से यूज़ यूआरएल से 'चुनने की कोशिश कर रहे हैं जहां यू.एन.ए. जैसे: आईडी' ', तो यह इस स्टेटमेंट को ढूंढने का प्रयास करेगा पहले पूल में)

क्या कोई ये बता सकता है कि डीबीसीपी का प्रयोग करने के लिए तैयार किए गए कनेक्शन के लिए तैयार किया जा सकता है? (यदि संभव हो तो कुछ उदाहरण कोड के साथ) मुझे यह पता चल गया है कि इसे कैसे चालू करें - पूलएबल कननडेफेन्चर के लिए एक KeyedObjectPoolFactory पास करें लेकिन इसके बाद विशिष्ट तैयार किए गए बयानों को कैसे परिभाषित किया जाना चाहिए? अभी मैं पूल से कनेक्शन पाने के लिए केवल पूलिंगडेटासोर्स का उपयोग कर रहा हूं। मैं पूल से तैयार बयानों का उपयोग कैसे करूं?


यहां बुनियादी कोड है जो मैं उपयोग करता हूं।

    GenericObjectPool connectionPool = new GenericObjectPool(null);
    connectionPool.setMinEvictableIdleTimeMillis(1000 * 60 * 30);
    connectionPool.setTimeBetweenEvictionRunsMillis(1000 * 60 * 30);
    connectionPool.setNumTestsPerEvictionRun(3);
    connectionPool.setTestOnBorrow(true);
    connectionPool.setTestWhileIdle(false);
    connectionPool.setTestOnReturn(false);

    props = new Properties();
    props.put("user", username);
    props.put("password", password);
    ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(url, props);

    PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory, connectionPool, null, "SELECT 1", false, true);
    PoolingDataSource dataSource = new PoolingDataSource(connectionPool);




apache-commons-dbcp