2022년 11월 13일 일요일(로그인페이지2)
● Service
Controller에 의존성을부여하여 service.getUser코드가 실행되면
Service페이지가 실행된다.
controller과 Dao페이지를 연결해주는 역할을하기때문에
Service패키지에 userDao에 의존성객체를 주입해주기 위해 @Autowired private UserDao userDao;를 코딩해준다.
Controller에서 요청한 getUser메서드는 userid를 파라미터로 갖고
userDao에있는 selectOne(userid)메서드가 실행되어 나온결과값을 리턴해줄것이다.
● UserDao
@Repository를 작성하여 이 클래스가 DAO클래스라는것을 알려줄수있다.
@Autowired를 사용하여
private SqlsessionTemplate template; ( Mybatis 쿼리문을 수행해주는 역할을한다.)
private Map<String,Object> param = new HashMap<>(); 을통해 해쉬맵을 사용할수있게 정의해둔다.
Map<"Key값","value값">으로 설정할수있다.
로그인시에 DB에서 로그인하는 아이디와 비밀번호가 일치하는 정보를 가져와야하기때문에
User selectOne(String userid) 문자열형태의 userid를 파라미터값으로 가진 메서드를 실행한다.
param.clear(); 를 통해 param에 혹시 있을지모르는 데이터값을 정리해주고,
param.put("userid",userid) "userid"키값을 가진 value userid를 넣는다.
param객체에는 브라우저에서 로그인시 입력한 id와 비밀번호값을 가지고있다.
return template.getMapper(UserMapper.class).selectOne(param);
설정해준 UserMapper에서 selectOne(param) 쿼리문을 실행하게 된다.
● UserMapper
UserDao에서 요청한 selectOne을 통해
로그인시 입력하여 param객체에 들어간 userid 정보를통해
select * from u_user where userid=#{userid}
u_user테이블의 입력된아이디(userid)에 맞는 정보를 모두 조회하여
해당정보를 리턴해준다.
DB에 정보와 일치한다면 UserController에서 코딩한대로 세션에 등록하고
setViewName("redirect:페이지?id="+user.getUserid(); 를 통해
메인페이지로 이동할수있도록 설정하였다.
아직 태그들의 정렬이나 css부분은 정확히 이해한 부분이 많지않아 어색하지만
되는대로 초기설정을 해두었다.