아래는 Spring MVC 패턴을 사용하여 DB에서 데이터를 조회하여 View 페이지로 넘기는 예제입니다. MyBatis를 ORM 프레임워크로 사용하며, Controller, Service, Mapper (DAO 역할) 클래스를 포함합니다.
1. Controller (MaCinkRomngController.java)
@Controller
@RequestMapping(FOLDER_PATH) // FOLDER_PATH는 클래스 상단에 상수로 정의
public class MaCinkRomngController {
@Autowired
private MaCinkRomngService maCinkRomngService;
@RequestMapping("list.do")
public String list(@ModelAttribute("searchVO") MaCinkRomngVO searchVO, Model model) {
// 1. Service 객체를 통해 DB 데이터 조회
List<MaCinkRomngVO> list = maCinkRomngService.selectMaCinkRomngList(searchVO);
// 2. Model 객체에 조회된 데이터 추가
model.addAttribute("resultList", list); // "resultList" 이름으로 view에서 사용
return ".mLayout" + FOLDER_PATH + "list"; // view 페이지 경로 반환
}
}
2. Service (MaCinkRomngService.java)
@Service
public class MaCinkRomngService {
@Autowired
private MaCinkRomngMapper maCinkRomngMapper;
public List<MaCinkRomngVO> selectMaCinkRomngList(MaCinkRomngVO searchVO) {
return maCinkRomngMapper.selectMaCinkRomngList(searchVO);
}
}
3. Mapper (MaCinkRomngMapper.java)
public interface MaCinkRomngMapper {
List<MaCinkRomngVO> selectMaCinkRomngList(MaCinkRomngVO searchVO);
}
4. MyBatis Mapper XML (maCinkRomngMapper.xml)
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="kepco.evc.ma.mbrMng.persnMbr.clnkRomng.mapper.MaCinkRomngMapper">
<select id="selectMaCinkRomngList" parameterType="MaCinkRomngVO" resultType="MaCinkRomngVO">
SELECT /* 필요한 컬럼 목록 */
FROM /* 테이블 이름 */
WHERE 1=1
<if test="searchWord != null and searchWord != ''">
AND /* 검색 조건 컬럼 */ LIKE concat('%', #{searchWord}, '%')
</if>
<if test="searchType != null and searchType != ''">
AND /* 검색 조건 컬럼 */ = #{searchType}
</if>
/* 추가 검색 조건 */
ORDER BY /* 정렬 기준 컬럼 */ DESC
</select>
</mapper>
5. View Page (list.jsp)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<table>
<thead>
<tr>
<th>회원번호</th>
<th>이름</th>
<th>...</th>
</tr>
</thead>
<tbody>
<c:forEach var="item" items="${resultList}">
<tr>
<td>${item.mbrNo}</td>
<td>${item.name}</td>
<td>...</td>
</tr>
</c:forEach>
</tbody>
</table>
주요 설명:
학생 정보 관리 시스템 구축 예제 (1) | 2025.02.09 |
---|---|
ObjectMapper 매퍼 = new ObjectMapper() (0) | 2025.01.24 |
패키지에 impl을 붙이는 이유 (1) | 2025.01.24 |
REST 방식에서 쿼리스트링 (0) | 2025.01.23 |
스프링에서 모델1, 모델2 (1) | 2025.01.23 |