मैं एक वेब प्रोजेक्ट पर काम कर रहा हूं और मैंने हाल ही में 9.1.1 पोस्टग्रेज स्थापित किए हैं
...
मैंने इसे जावा बिल्ड पथ में जोड़ा है प्रोजेक्ट गुणों का उपयोग करके ग्रहण के माध्यम से।
वह गलत तरीका है। उस जार को सीधे /WEB-INF/lib
में छोड़ना होगा वेब प्रोजेक्ट का फ़ोल्डर बिल्ड पथ . के साथ फ़िदा किए बिना परियोजना के गुणों में। वह फ़ोल्डर वेबएप के रनटाइम क्लासपाथ का मानक हिस्सा है।
असंबंधित ठोस समस्या के लिए:आपके पास अपने DBConnection
. में एक प्रमुख डिज़ाइन दोष है कक्षा। आपने Connection
घोषित कर दिया है static
. के रूप में जो अनिवार्य रूप से आपके कनेक्शन को थ्रेडसेफ नहीं . बनाता है . कनेक्शन पूल का उपयोग करें और कभी भी Connection
असाइन न करें (न ही Statement
न ही ResultSet
) एक वर्ग/आवृत्ति चर के रूप में। उन्हें उसी try-finally
. में बनाया और बंद किया जाना चाहिए जहां आप क्वेरी निष्पादित कर रहे हैं, वहां ब्लॉक करें। इसके अलावा आपके पास एक SQL इंजेक्शन छेद भी है। PreparedStatement
का उपयोग करें SQL स्ट्रिंग में उपयोगकर्ता-नियंत्रित चरों को संयोजित करने के बजाय।
यह भी देखें:
- जेडीबीसी माइस्क्ल कनेक्शन पूलिंग अभ्यास समाप्त कनेक्शन पूल से बचने के लिए
- कनेक्शन पूल से डेटाबेस कनेक्शन प्राप्त करें
- क्या मैं JDBC कनेक्शन पूलिंग का उपयोग कर रहा हूँ?