JDBC केवल कॉलम को क्वेरी में निर्दिष्ट के अनुसार नाम देगा - यह तालिका के नाम आदि के बारे में नहीं जानता है।
आपके पास दो विकल्प हैं:
विकल्प 1: क्वेरी में कॉलम को अलग-अलग नाम दें, यानी
SELECT
a.columnName as columnNameA,
b.columnName as columnNameB,
...
from table1 a, table2 b where (WHATEVER)
फिर अपने जावा कोड में कॉलम उपनाम देखें:
resultSet.getString("columnNameA");
resultSet.getString("columnNameB");
विकल्प 2: कॉलम स्थिति का संदर्भ लें JDBC API को आपके कॉल में:
resultSet.getString(1);
resultSet.getString(2);
ध्यान दें कि JDBC API एक-आधारित का उपयोग करता है अनुक्रमणिका - यानी वे 1
. से गिने जाते हैं (0
. से नहीं जावा इंडेक्स की तरह), इसलिए 1
. का उपयोग करें पहले कॉलम के लिए, 2
दूसरे कॉलम के लिए, आदि
मैं विकल्प 1 की अनुशंसा करता हूं, क्योंकि नामित कॉलम को संदर्भित करना सुरक्षित है:कोई व्यक्ति क्वेरी में कॉलम का क्रम बदल सकता है और यह चुपचाप आपके कोड को तोड़ देगा (आप गलत कॉलम तक पहुंच रहे होंगे लेकिन आपको पता नहीं होगा) , लेकिन अगर वे कॉलम के नाम बदलते हैं, तो आपको रनटाइम पर कम से कम "ऐसा कोई कॉलम नहीं" अपवाद मिलेगा।