안녕하세요.
이번시간에는 Spring Framework와 MariaDB와의 연동에 대해서 알아보고,
저번시간에 만들어 두었던 테이블에서 데이터를 가져와서 화면에 리스트를 뿌려보는것까지 해보겠습니다. ^^;
먼저, pom.xml에 아래 그림과 같이 Mybatis와 MariaDB의 dependency를 추가해줍니다.
그런다음, project에서 마우스 오른쪽을 클릭하여 Maven -> Update project를 해주면 온라인으로 Maven dependency를 자동으로 업데이트해줍니다.
그런다음 root-context.xml에 아래 그림과 같이 데이터 베이스 설정값을 추가해줍니다.
부연설명을 좀 하자면,
9번 라인은 url을 설정해주는 부분이고... 저는 로컬에 mariadb를 설치했고 데이터베이스 이름은 board_db입니다.
10번라인은 데이터베이스의 username, 11번 라인은 데이터베이스의 password를 설정해주는 부분입니다.
각자의 데이터베이스 설정에 따라서 적절하게 바꿔주시면 됩니다.
16번째 라인이 query가 들어있는 xml을 지정해주는 부분인데, classpath는 말그대로 클래스 패스 경로라고 생각하시면 됩니다.
아래 그림은 제가 프로젝트에 설정한 경로입니다.
sql_board.xml은 아래와 같이 코딩하였습니다. 저번시간에 만들어 놓은 테이블에서 select쿼리를 날려서 데이터를 얻어오게 코딩되어 있습니다.
비지니스로직 소스를 함 보시죠. 일단 BoardController.java 입니다.
13번 줄에서 이 클래스는 컨트롤러라는것을 Controller 어노테이션으로 선언을 하였습니다.
17번 줄에서 Resource 어노테이션으로 boardService를 설정해주었습니다.
20번 줄에서 RequestMapping 어노테이션으로 "board/boardList/" 로 설정하였습니다.
22번줄에서 ModelAndView로 /board/boardList라는 뷰를 설정하였습니다.
24, 25번줄에서는 list에 데이터를 담아오는 코딩을 하였습니다.
다음으로, BoardDAO.java를 보시겠습니다.
11번줄에 Repository 어노테이션으로 boardDAO를 설정하였습니다.
15번줄에 Autowired 어노테이션을 선언하였고, 16번줄에 sqlSession을 선언하였습니다.
20번줄에 selectList의 첫번째 파라미터로 board.selectBoardList를 두번째 파라미터로 map을 주었습니다.
board.selectBoardList의 의미는 resources/mapper/board/sql_board.xml파일에 선언되어 있는 mapper의 namespace와 id와 정확히 일치해야합니다.
그럼, BoardService.java를 보시죠.
인터페이스로 selectBoardList를 선언한것을 볼수 있습니다.
그렇게되면, BoardServiceImpl.java에서 BoardService 인터페이스를 implement 합니다.
아래는 BoardController.java에서 boardList함수에서 선언되어 있던 boardList.jsp입니다.
1,2,3번줄에서 페이지인코딩, jstl 설정을 하였습니다.
27~39번줄에서 테이블에 루프를 돌리면서 데이터를 뿌려주고 있습니다.
jstl 문법은 공부를 해두는게 좋다. 다음에 시간이 되면 jstl 문법을 공부해보도록 하겠습니다.
저는 컴파일해서 화면에 뿌려주기 전에 디버깅을 해서 실제 데이터가 디비에서 제대로 넘어오는지 확인해보도록 하겠습니다.
디버깅 모드로 컴파일하고 난뒤 브라우져에 http://localhost:8080/board/board/boardList/ 로 하면 아래와 같이 디버깅이 걸리고
정상적으로 데이터를 가져오는것을 확인할 수 있습니다.
개인적으로 디버깅의 능력은 굉장히 중요하다고 생각합니다.
실제 프로젝트에서 문제를 빠르게 해결하기 위해선 디버깅을 얼마나 잘 할 수 있느냐가 관건이기 때문입니다.
디버깅해서 데이터도 정상적으로 나오기 때문에, 이제 브라우져에서 정상적으로 실행되는지 확인해보겠습니다.
컴파일해서 브라우져에서 확인해보면 아래와 같이 정상적으로 데이터가 표출되고 있는것을 볼 수 있습니다.
근데 화면이 이쁘지는 않네요. ㅎ
우리는 디자인 퍼블리셔는 아닌 개발자이기 때문에 화면이 이쁘지 않는건 애교로 넘어가시죠. ^^;;;
그럼 다음시간에 다시 만나요^^
게시판만들기 - 글상세 (0) | 2019.03.10 |
---|---|
게시판 만들기 - 글 수정 (0) | 2018.12.29 |
게시판만들기 - 게시판 글작성 (0) | 2018.12.23 |
게시판 만들기 - 게시판 리스트 (1) | 2018.12.20 |
게시판 만들기 - Database 생성 및 테이블 생성 (0) | 2018.12.19 |
댓글 영역