मैं स्कैला और जेडीबीसी का उपयोग करता हूं, अब मैं एक बहु-सम्मिलन करने के लिए PreparedStatement
का पुन: उपयोग करना चाहता हूं। मैं एक सरणी पर एक foreach-loop का उपयोग करना चाहता हूँ, लेकिन मैं इसे स्कैला के साथ सही नहीं कर सकता।स्कैला में फ़ोरैच-लूप का उपयोग कैसे करें जो ऑब्जेक्ट को म्यूट करता है?
val stmt = conn.prepareStatement(insertStatement)
// wrong Scala
items.foreach(item : MyItem =>
stmt.setInt(1, item.id)
stmt.setInt(2, item.value)
stmt.executeUpdate()
)
items
कई MyItem
युक्त एक सरणी है।
मैं स्कैला में इस फ़ोरैच-लूप को कैसे लिख सकता हूं और PreparedStatement
का पुन: उपयोग कर सकता हूं?
यह सिर्फ हो सकता है कि आप ठीक ढंग से निष्पादित करने के लिए बहु-लाइन ब्लॉक पाने के लिए क्रम में घुंघराले ब्रेसिज़ ('आइटम foreach {...}') उपयोग करने की आवश्यकता? यदि नहीं, तो कृपया बताएं ** क्यों ** यह गलत है (उदा। संकलक त्रुटि संदेश, या परिणामस्वरूप गलत व्यवहार दें)। –
@Andrzej: मैंने कुछ स्थानों में '{' और '} 'डालने का प्रयास किया है, लेकिन मैं इसे किसी भी संयोजन से संकलित नहीं कर सकता। इस मामले में त्रुटि 'उठाई गई त्रुटि है:') 'अपेक्षित लेकिन' ('found.' * * * stmt.setInt ↓ (1, item.id) ' – Jonas
@ जोन्स ऐसा लगता है कि यह एक घुंघराले ब्रेस मुद्दा है ; मैंने इसे प्रदर्शित करने का एक जवाब जोड़ा है। यदि आप अभी भी समस्याएं देख रहे हैं तो यह शायद कहीं और तार्किक त्रुटि पर आधारित है, जिस तरह से स्कैला फ़ोरैच लूप को संभालती है। –