2009-12-27 9 views
12

मैं अपने जेएसपी पेज में अपनी परिणाम सूची में कनवर्ट करना चाहता हूं। और सभी मूल्यों को प्रदर्शित करना चाहते हैं।परिणाम सूची

SELECT userId, userName 
    FROM user; 

मैं preparedstatement का उपयोग कर कि मार डाला और ResultSet मिल गया है: यह मेरी क्वेरी है। लेकिन यह कैसे एक सूची के रूप में यह बदलने और इस तरह परिणाम प्रदर्शित करना चाहते हैं के लिए:

userID userName 
------------------ 
1001 user-X 
1006 user-Y 
1007 user-Z 
+0

क्या जेएसपी में उपलब्ध परिणामसेट का उदाहरण है (उदाहरण के लिए स्क्रिप्टलेट टैग के भीतर बनाया गया है) या यह सर्वलेट में बनाया जा रहा है, और जेएसपी में पारित किया गया है? – Rob

उत्तर

27

आप एक पाश, पंक्ति दर पंक्ति में ResultSet वस्तु पर पुनरावृति करने के लिए, प्रत्येक स्तंभ मान बाहर निकलने के लिए की जरूरत है :

List ll = new LinkedList(); 
ResultSet rs = stmt.executeQuery("SELECT userid, username FROM USER"); 

// Fetch each row from the result set 
while (rs.next()) { 
    int i = rs.getInt("userid"); 
    String str = rs.getString("username"); 

    //Assuming you have a user object 
    User user = new User(i, str); 

    ll.add(user); 
} 
+0

केवल एक चीज जिसे तय किया जा सकता है, कथन को तैयार कथन (ओपी के रूप में) – Bozho

+2

पर बदलना सही है, लेकिन यह वास्तव में कोई फर्क नहीं पड़ता क्योंकि प्रश्न केवल परिणामसेट ऑब्जेक्ट से डेटा प्राप्त करने का संबंध रखता है। –

+0

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

5

तुम हमेशा Commons DbUtils और MapListHandler इस्तेमाल कर सकते हैं। दस्तावेज़ में:

ResultSetHandler कार्यान्वयन कि मैप्स

की एक सूची में एक ResultSet परिवर्तित कर देती है यह अपने हाथ से बाहर बॉयलरप्लेट कोड का एक बहुत कुछ ले लेंगे।

5

एक परिणामसेट को कभी भी जेएसपी तक नहीं जाना चाहिए। इसे डेटा संरचना या ऑब्जेक्ट में मैप करना चाहिए और उस विधि के दायरे में बंद होना चाहिए जिसमें इसे बनाया गया था। यह एक डेटाबेस कर्सर, एक दुर्लभ संसाधन है। यदि आप इस तरह के डिज़ाइन के साथ बने रहें तो आपका ऐप जल्द ही उनमें से बाहर निकल जाएगा।

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