sql >> データベース >  >> RDS >> Mysql

SpringMVCアプリケーションでデータベースに重複するユーザー名を追加するときに例外を処理する方法

    MySQLIntegrityConstraintViolationExceptionのみを処理しており、他の例外(NestedServletExceptionおよびDuplicateKeyException)を処理していないため、スタックトレースが取得され、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. MSSQLで年と週の番号から日付を作成します

    2. MySQLデータベースから同様のアイテムをプルするための最良の方法

    3. php mysqliを使用して元帳帳を作成し、DRとCRに従ってバランスを取ります

    4. SQLAlchemy Integerフィールドを使用して、フィルタリング用のtimedeltaオブジェクトを作成します