ORM & Mybatis

웰시고기·2021년 2월 6일
0

  • ORM(Object Relational Mapping)은 Java의 Object를 데이터베이스의 테이블로 전환시켜 매핑한다.
  • 위의 그림과 같이 class의 자료형과 일치하는 테이블의 데이터로 매핑된다. 예를 들어 String -> varchar, double -> decimal이 있다.

Mybatis

  • Mybatis는 JDBC를 통해 얕은 ORM을 제공한다.
@Mapper
public interface UserMapper {
   @Insert("INSERT INTO USERS (username, salt, password, firstname, lastname) " +
           "VALUES(#{username}, #{salt}, #{password}, #{firstName}, #{lastName})")
   @Options(useGeneratedKeys = true, keyProperty = "userId")
   int insert(User user);
}
  • interface를 통해 사용되며 자동으로 class를 생성해 Spring bean에서 사용할 수 있도록 한다.
  • 객체를 인자로 전달만 해줘도 attribute를 자동으로 전달해 준다.
  • @Options를 통해 auto-increment key 등을 설정할 수 있다.

User Authentication

  • 데이터베이스는 언젠가 탈취당할 위험이 있기 때문에 항상 비밀번호와 같은 개인 정보는 암호화하거나 해시화한다.
  • 로그인한 유저만 볼 수 있는 영역을 로그인 하지 않은 유저가 볼 수 없도록 구분해야한다.
  • Spring Security를 통해 구현 가능하다.
@Override
protected void configure(HttpSecurity http) throws Exception {
   http.authorizeRequests()
           .antMatchers("/order", "/css/**", "/js/**").permitAll()
           .anyRequest().authenticated();
   http.formLogin()
           .loginPage("/login")
           .permitAll();
   http.formLogin()
           .defaultSuccessUrl("/tacos", true);
}
  • order과 login은 누구나 접근할 수 있다.
  • 그 외는 로그인한 유저만 접근 가능하다.
  • 로그인 성공시 /tacos로 이동한다.

0개의 댓글