sql >> Databáze >  >> RDS >> Mysql

Jak zacházet s výjimkou při přidávání duplicitního uživatelského jména do databáze v aplikaci spring mvc

Zpracováváte pouze MySQLIntegrityConstraintViolationException, nikoli další výjimky:NestedServletException a DuplicateKeyException, a proto získáváte stacktrace a váš pokus/úlovek nefunguje.

BTW, proč jednoduše nevytvořit další metodu pro kontrolu, zda je uživatelské jméno již přítomno, a pokud ano, zobrazit chybovou zprávu, jinak přidat uživatele.

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. Vizualizace dat pomocí Apache Zeppelin – výukový program

  2. MySQL Case s vložením a aktualizací

  3. předat soubor sql nodejs pro spuštění jako celek

  4. Instalace webového serveru ve FreeBSD 6.0 s Apache 2.2, MySQL 5.0 a PHP 5 – část 3