Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

स्प्रिंग एमवीसी एप्लिकेशन में डेटाबेस में डुप्लिकेट उपयोगकर्ता नाम जोड़ते समय अपवाद को कैसे संभालें?

आप केवल MySQLIntegrityConstraintViolationException को संभाल रहे हैं अन्य अपवाद नहीं:NestedServletException और DuplicateKeyException और इसलिए आपको स्टैकट्रेस मिल रहा है और आपकी कोशिश/पकड़ काम नहीं कर रही है।

BTW, क्यों न केवल यह जांचने के लिए एक अतिरिक्त विधि बनाई जाए कि क्या उपयोगकर्ता नाम पहले से मौजूद है और यदि हाँ तो त्रुटि संदेश प्रदर्शित करें अन्यथा उपयोगकर्ता जोड़ें।

class UserRepositoryImpl implements UserRepository{
    //.....
    public int isUsernameExist(String username){
        String sql = "SELECT COUNT(*) FROM users WHERE username=?";
        return jdbcTemplate.queryForObject(sql, new Object[] { username }, String.class);
    }
    //....
}

@RequestMapping(value="/register", method=RequestMethod.POST)
public String processRegisterUser(@ModelAttribute("user") User user, BindingResult result){
    int status = userRepository.isUserExist(user.getUsername());
    if(status==1){
        //Username exist... redirect and display error msg.
    } else {
        userRepository.addUser(user);
    }
    //.....
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - MySQL UPDATE या SELECT क्वेरियों में इफ तो एल्स का उपयोग करना

  2. पीडीओ एकाधिक प्रश्न

  3. निम्नलिखित क्वेरी को निष्पादित करने में बहुत अधिक समय लग रहा है। इसे कैसे ऑप्टिमाइज़ करें

  4. वीबीए - 'mysql सर्वर प्राप्त करना - केवल पढ़ने के लिए' त्रुटि है लेकिन केवल रिकॉर्डसेट का उपयोग करते समय

  5. यदि MYSQL_ATTR_INIT_COMMAND का उपयोग किया जाता है तो PDO त्रुटि फेंकता है