2014-12-20 6 views
7

मैं कैसे इस अपवाद पकड़ कर सकते हैं:पकड़ने डुप्लिकेट प्रविष्टि अपवाद

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: 
             Duplicate entry '22-85' for key 'ID_CONTACT' 
+2

यह मुद्दा जो इस अपवाद – sol4me

+0

यह एक मुद्दा नहीं है लेकिन एक वेब अनुप्रयोग के साथ एक उपयोगकर्ता http अनुरोध पैरामीटर बदल सकते हैं खड़ी कर रहा है हल करने के लिए बेहतर होगा और मैं चाहता हूँ सुनिश्चित करें कि हर चीज काम करती है इसलिए मैं इस परत सुरक्षा को जोड़ना चाहता हूं। – Youssef

+0

लेकिन जैसा कि आप स्टैकट्रैक से देख सकते हैं कि सम्मिलित होने के दौरान आप एक बाधा का उल्लंघन कर रहे हैं और डेटाबेस को भेजने से पहले डेटा को सत्यापित करना बेहतर है। यदि आप वास्तव में चाहते हैं तो आप अपवाद को स्पष्ट रूप से पकड़ सकते हैं लेकिन मैं एक क्लीनर समाधान – sol4me

उत्तर

12

मैं वसंत का उपयोग करें ताकि हम इसे org.springframework.dao.DataIntegrityViolationException

try { 
     ao_history_repository.save(new AoHistory(..)); 
    } 
    catch (DataIntegrityViolationException e) { 
     System.out.println("history already exist"); 
    } 
7

पकड़ SQLIntegrityConstraintViolationException, यदि आप जावा 1.6+

उपयोग कर रहे हैं जैसे

try { 
    ps.executeUpdate("INSERT INTO ..."); 
} catch (SQLIntegrityConstraintViolationException e) { 
    // Duplicate entry 
} catch (SQLException e) { 
    // Other SQL Exception 
} 

या

try { 
    ps.executeUpdate("INSERT INTO ..."); 
} catch (SQLException e) { 
    if (e instanceof SQLIntegrityConstraintViolationException) { 
     // Duplicate entry 
    } else { 
     // Other SQL Exception 
    } 
} 
+0

'SQLIntegrityConstraintViolationException के लिए पहुंच योग्य पकड़ ब्लॉक। यह अपवाद कभी भी कोशिश कथन बॉडी ' – Youssef

+0

@Youssef से नहीं फेंक दिया गया है, आपके mysql-connector-java का संस्करण क्या है? और एसक्यूएल क्या है जिसे आप अपडेट करने का प्रयास करते हैं? – auntyellow

+0

पकड़ने SQLException की आवश्यकता है। फिर आप यह पता लगा सकते हैं कि यह एक SQLIntegrityConstraintViolationException है या नहीं। ध्यान दें कि MySQLIntegrityConstraintViolationException एक प्रकार का SQLIntegrityConstraintViolationException है। – auntyellow

0

निम्नलिखित कोड मेरे लिए काम करता द्वारा हल:

try { 
    requete.executeUpdate(); 
} catch (final ConstraintViolationException e) { 

} 
0

मैं वसंत का उपयोग करें। तो पकड़ने org.springframework.dao.DuplicateKeyException

try{ 
    ... 
} catch (DuplicateKeyException dke) { 
    ... 
} 
संबंधित मुद्दे