2011-12-08 14 views
17

में वर्तमान कनेक्शन ऑब्जेक्ट कैसे प्राप्त करें I Oracle डेटाबेस के लिए वर्तमान कनेक्शन ऑब्जेक्ट कैसे प्राप्त कर सकता हूं? मैं वसंत 3.0.5 में जेडीबीसी मॉड्यूल का उपयोग कर रहा हूं।वसंत जेडीबीसी

उत्तर

19

DataSource बीन से Connection प्राप्त करें।

आप स्प्रिंग निर्भरता इंजेक्शन का उपयोग कर अपने सेम को इसकी सुई देने से डेटा स्रोत का उपयोग कर सकते हैं, या ApplicationContext स्थिर तक पहुँचकर:

DataSource ds = (DataSource)ApplicationContextProvider.getApplicationContext().getBean("dataSource"); 
Connection c = ds.getConnection(); 
+8

लेकिन यह वर्तमान कनेक्शन नहीं बल्कि नया कनेक्शन वापस नहीं करता है। मुझे वर्तमान कनेक्शन वापस करने की जरूरत है। स्थिति है: मैंने कनेक्शन बनाया है और मुझे इसे किसी अन्य स्थान पर उपयोग करने की आवश्यकता है, लेकिन उसी कनेक्शन में – vlcik

+0

आपने कनेक्शन कैसे बनाया? कृपया स्रोत पेस्ट करें। – socha23

+0

मैंने स्प्रिंग जेडीबीसी टेम्पलेट के उदाहरण का उपयोग करके कनेक्शन बनाया – vlcik

13

उपयोग DataSourceUtils.getConnection()

यह वर्तमान लेनदेन से जुड़ा कनेक्शन देता है, यदि कोई हो।

+0

मैं लेनदेन का उपयोग नहीं करता हूं। उपरोक्त कोड का आपका टुकड़ा कनेक्शन का एक और उदाहरण बनाता है और यह मेरे लिए समस्या है। मुझे वर्तमान उदाहरण की आवश्यकता है जिसे मैंने जल्द ही – vlcik

+0

@ user330847 बनाया: यदि हां, तो आप "वर्तमान कनेक्शन" से क्या मतलब रखते हैं और आप वास्तव में क्या हासिल करना चाहते हैं? – axtavt

+0

मैं ओरेकल संग्रहीत प्रक्रिया को कॉल करना चाहता हूं। मैंने द्वारा सफलतापूर्वक जेडीबीसी टेम्पलेट उदाहरण बनाकर कनेक्शन बनाया। उसके बाद मैं कॉल करने योग्य कथन निष्पादित करता हूं और यह मुझे परिणाम सेट देता है। अब, मैं परिणाम सेट को पार्स करना चाहता हूं और इसे वैल्यू ऑब्जेक्ट पर मैप करना चाहता हूं। और पार्सिंग की इस प्रक्रिया में मुझे कनेक्शन प्राप्त करने की आवश्यकता है जो शुरुआत में बनाया गया था। यह कनेक्शन 'वर्तमान कनेक्शन' है। मुझे नहीं पता कि यह वर्तमान कनेक्शन – vlcik

9

बस एक जानकारी: मैं वसंत जेडीबीसी टेम्पलेट का उपयोग कर रहा हूं, जिसमें मेरे लिए वर्तमान कनेक्शन ऑब्जेक्ट है, जिसे निम्नानुसार प्राप्त किया जा सकता है।

Connection con; 
con = getJdbcTemplate().getDataSource().getConnection(); 
+0

उन लोगों के लिए जिन्हें पता नहीं हो सकता है, 'JdbcTemplate' को आसानी से फ़ील्ड के रूप में इंजेक्शन दिया जा सकता है:' @Autowired JdbcTemplate jdbcTemplate; ' – acdcjunior

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