이번 포스팅에서는 실제로 DB의 테이블에서 데이터를 조회해서 VIEW에 가져와 보겠습니다
먼저 sample.xml 쿼리문을 예로 생성해 보겠습니다.
아래와 같이 지난시간에 생성되었던 resourecs/mybatis/ 경로 밑에 sample.xml 파일을 생성하고 아래와 같이 작성해 줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mobile.mis.sample.mapper.SampleMapper">
<select id="selectEmp" resultType="com.mobile.mis.sample.vo.empVo">;
SELECT
CD_COMPANY as company,
ID_USER as id,
NO_EMP as no
FROM MOBILE_EMP
</select>
</mapper>
|
cs |
위의 예제는 MyBatis에서 Result를 ResultType를 이용해 VO로 처리할 것이다. 하지만 아래와 같이 ResultMap도 있으니 알아두자. ResultType : 쉽게 클래스를 가져온다고 생각하면 이해하기 쉬울 것 같다. 즉, 미리 정의해 놓은 vo를 사용 - hashMap : Map 형식으로 리턴 - VO : Value Object 형식으로 리턴 ResultMap : mapper(xml) 안에서 새롭게 정의된 형식으로 이해하자 - resultMap 선언 시 사용할 ID를 입력하게 되며, 기존 VO에서 컬럼의 이름이 다를 경우 등 컬럼 네임 치환이 가능하다. - 개발자가 직접 각 요소들을 매핑/설정 할 수 있다. |
그럼 이제, mapper과 vo를 생성해 볼까요? (위의 풀패키지 경로 참고)
먼저 vo 입니다. 아래 그림의 경로를 참고하여 mapper과 vo의 폴더(패키지)를 생성합시다.
위 경로에 empVo.java 파일을 생성하면 되겠죠? 내용은 아래와 같습니다.
(sample.xml에서 호출한 쿼리의 데이터를 받아올 string 변수를 생성하는 역할로 이해하시면 됩니다.)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
package com.mobile.mis.sample.vo;
public class empVo {
private String company;
private String id;
private String no;
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
}
}
|
cs |
자, 여기까지는 큰 어려움 없이 진행 하셨을 것 입니다. 이제 mapper을 생성해 보도록 합시다.
아래와 같은 경로에 java파일을 생성하고 파일 내용을 작성합니다.
위의 sample.xml에 기입된 경로(mapper tag안에 선언한 namespace와 정확한 위치) 에 같은 이름으로 생성되야 하며,
selecttag안에 선언된 id값(sampleEmp)와 메소드 이름이 같아야 합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
|
package com.mobile.mis.sample.mapper;
import java.util.List;
import com.mobile.mis.sample.vo.empVo;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Repository
@Mapper
public interface SampleMapper {
List<empVo> selectEmp();
}
|
cs |
다음은 Service 클래스를 생성합니다.
아래와 같은 경로에 패키지(폴더)를 생성하고, 파일을 생성하여 작성 합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
package com.mobile.mis.sample.service;
import com.mobile.mis.sample.mapper.SampleMapper;
import com.mobile.mis.sample.vo.empVo;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
@Service
public class EmpService {
@Autowired
public SampleMapper mapper;
public List<empVo> selectEmp(){
return mapper.selectEmp();
}
}
|
cs |
이제 위에서 생성한 서비스 메소드를 호출할 컨트롤러를 작성해 보겠습니다. 기존에 계속 작성하던 SampleController에 아래의 내용을 추가해 줍니다.
1
2
3
4
5
6
7
8
9
10
11
12
|
@Autowired
EmpService service;
@RequestMapping(value = "/emp", method=RequestMethod.GET)
public ModelAndView mssql(HttpServletRequest request) {
ModelAndView mav = new ModelAndView();
List<empVo> testList = service.selectEmp();
mav.addObject("list", testList);
mav.setViewName("thymeleaf/emp");
return mav;
}
|
cs |
이제 thymeleaf/emp 의 view 화면을 꾸며주면 되겠죠?
자, 아래와 같이 emp.html 파일을 생성하고, 간단하게 view 작성을 해봅시다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<!DOCTYPE html>
<html lang="kr" xmlns:th="http://www.thymeleaf.org">
<head>
<title>DATABASE 테스트</title>
<meta charset="UTF-8">
</head>
<body>
<div>
<ul>
<li th:each="item : ${list}">
<dl>
<dd><span th:text="${ item.company }"></span></dd>
<dt><a href="#"><span th:text="${ item.id }"></span></a></dt>
<dd><span th:text="${ item.no }"></span></dd>
</dl>
</li>
</ul>
</div>
</body>
</html>
|
cs |
이제 서버를 실행시켜, 페이지를 호출 (http://localhost:8080/emp) 해 볼까요?
아래와 같이 (디자인은 전혀 고려하지 않았지만..) DB의 TABLE에서 데이터를 정상적으로 가져오고 있을 것 입니다.
자, 매우 빠르게 진행한 거서 같은데요. (대략적인 vo, mapper, service에 대해서만 간단히 실습)
나머지 궁금한 사항은 댓글 달아 주셔도 되고, 다른 자료를 찾아보시면 개념 잡는데 더 좋을 것 같습니다.
우리는 지금까지 Spring Boot에서 ms-sql 데이터베이스를 연결하는 설정방법과, 간단한 예제를 통해 데이터를 view로 가져오는 샘플 페이지를 작성해 보았습니다.
다음 시간에는 Spring Boot에서 어플리케이션 로그와 데이터베이스 로그를 보여지도록 설정하는 방법에 대해 포스팅 하도록 하겠습니다.
'SPRING BOOT' 카테고리의 다른 글
Error: javax/servlet/jsp/tagext/TagLibraryValidator 오류를 해결해 보자 (1) | 2023.12.19 |
---|---|
[스프링부트 10] Spring Boot 로그 설정해 보기 (1) | 2021.11.30 |
[스프링부트 8] Spring Boot 데이터베이스(MSSQL) 연결 1 (2) | 2021.11.17 |
[스프링부트 7] Spring MVC View 만들기 (Thymeleaf) (0) | 2021.11.11 |
[스프링부트 6] Spring MVC View 만들기 (JSP) (7) | 2021.11.10 |