Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да се справя с изключение при добавяне на дублирано потребителско име към база данни в spring mvc приложение

Вие обработвате само MySQLIntegrityConstraintViolationException, а не други изключения:NestedServletException и DuplicateKeyException и следователно получавате stacktrace и вашият try/catch не работи.

Между другото, защо просто не създадете допълнителен метод, за да проверите дали потребителското име вече присъства и ако да, тогава да покажете съобщение за грешка, в противен случай добавете потребител.

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:Създаване на ново уникално поле във вече попълнена таблица

  2. Как да изпълня sql заявка в php?

  3. ГРЕШКА 1005 MySQL Workbench Предварителен инженеринг

  4. MySQL заявката не е вмъкната, когато PHP променливата съдържа единични кавички

  5. Как мога да пренапиша моя PHP и MySQL, за да групирам моя HTML списък по равни стойности на колоните?