어제는 사용자의 요청과 함께 보내진 값을 DB에 INSERT하는 것을 배웠고, 오늘은 DB에 있는 데이터를 SELECT해서 가지고 온 후, 화면으로 보내는 것을 배웠다.
1) 먼저 mapper.xml에 SELECT 쿼리문을 추가해준다. select는 DB에서 데이터를 가지고 오는 과정이니 select 속성에 resultType을 사용하여 모델 객체를 지정해준다.
2) 그리고 controller에 가져온 데이터들을 출력해줄 화면으로 이동시켜주고, 데이터를 보낼 method를 만든다. 이때 SqlSession의 selectList 메소드를 사용해서 DB에 접근하며 반환타입은 List타입이여서 MenuVo의 List 객체를 받아줄 변수를 만들어준다. List 변수를 for문을 이용해서 출력해본다. (MenuVo에 toString() 메소드를 만들어둔 상태)
3) 값을 잘 가지고 온 것을 확인했으니 이제 가져온 데이터를 화면에 전달해주면 된다. 기존 spring에선 req.setAttribute를 통해 화면으로 값을 전달해주었다. spring을 사용할땐 화면으로 보내는 메소드의 매개변수의 파라미터로 Model 객체를 받는 파라미터로 설정하면 spring이 처리해주게 된다. Model의 addAttribute메소드를 사용해 화면에서 전달 받을 데이터에 접근할 변수와 전달할 데이터리스트를 매개변수에 넣어준다.
4) 화면을 만들어주고 기존 jsp에서 값을 출력했던 방법으로 EL/JSTL을 사용해서 데이터를 출력해본다. 값이 잘 출력되는 것을 확인할 수 있다.