मैं उपयोगकर्ताओं की जानकारी संग्रहीत करने के लिए mongodb का उपयोग कर रहा हूं। मैं एक ऐसी विधि बनाना चाहता था जो डीबी से जानकारी प्राप्त करे, प्लेयर ऑब्जेक्ट्स बनाता है और उन्हें खिलाड़ियों की एक सरणी में डाल देता है।mongodb कर्सर अपवाद - जावा
इसमैं DB में संग्रहीत 4 उपयोगकर्ताओं है और जब मैं पहली विधि कॉल और फिर उदाहरण के लिए नाम मैं एक अपवाद हो रही है प्रिंट करने का प्रयास m निम्न विधि
public ArrayList<Player> getArrayOfPlayers(){
ArrayList<Player> savePlayers = new ArrayList<Player>();
DB db = connectToMongo();
DBCollection coll = db.getCollection("players");
DBCursor cursor = coll.find();
while(cursor.hasNext()) {
String tempName = (String)cursor.next().get("name");
String tempSession = (String)cursor.next().get("session");
String tempStringScore = (String)cursor.next().get("score");
int tempScore = Integer.parseInt(tempStringScore);
Player player = new Player(tempName,tempSession,tempScore);
savePlayers.add(player);
}
return savePlayers;
}
है। मैंने विधि के दौरान एक कोशिश-पकड़ का उपयोग किया और मैंने अपवाद पकड़ा, लेकिन फिर उसने केवल पहले उपयोगकर्ता के नाम को मुद्रित किया। ऐसा लगता है कि यह दूसरे पुनरावृत्ति में अपवाद फेंकता है।
यहां अपवाद के साथ संदेश है जो मुझे प्राप्त हो रहा है।
java.lang.RuntimeException: no more
com.mongodb.DBApiLayer$Result.next(DBApiLayer.java:394)
com.mongodb.DBApiLayer$Result.next(DBApiLayer.java:360)
com.mongodb.DBCursor._next(DBCursor.java:445)
com.mongodb.DBCursor.next(DBCursor.java:525)
machine.DAOMongodb.getArrayOfPlayers(DAOMongodb.java:74)
machine.testDB.doGet(testDB.java:43)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
एक आकर्षण की तरह काम किया !!! धन्यवाद! –