-
전자정부프레임워크를 이용 쇼핑몰 만들기 #4-select자바웹프로그래밍/전자정부프레임워크 2020. 4. 26. 14:26728x90반응형
1.mybatis mysql 작성
위와같은 경로에서 PetArticle_SQL_mysql을 연뒤 수정하자
PetArticle_SQL_mysql 작성
<?xml version="1.0" encoding="UTF-8"?><!-- 수정일 수정자 수정내용 ========= ======= ================================================= 2011.09.21 서준식 NTT_ID를 IDGENT서비스를 사용해서 생성하므로 selectMaxNttId문은 실제 사용하지 않음 --> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="ArticleDAO"> <resultMap id="boardlist" type="pet.com.bbs.service.BoardVO"> <result property="nttId" column="NTT_ID"/> <result property="bbsId" column="BBS_ID"/> <result property="nttCn" column="NTT_CN"/> <result property="nttSj" column="NTT_SJ"/> <result property="frstRegisterId" column="FRST_REGISTER_ID"/> <result property="frstRegisterPnttm" column="FRST_REGIST_PNTTM"/> </resultMap> <select id="Articlelist" parameterType="pet.com.bbs.service.BoardVO" resultMap="boardlist"> SELECT NTT_ID,BBS_ID,NTT_CN,NTT_SJ,FRST_REGISTER_ID,FRST_REGIST_PNTTM FROM COMTNBBS WHERE BBS_ID = #{bbsId} </select> <insert id="Articleinsert" parameterType="pet.com.bbs.service.BoardVO"> INSERT INTO COMTNBBS (NTT_ID,BBS_ID,NTT_SJ,NTT_CN,FRST_REGISTER_ID,FRST_REGISTER_PNTTM) VALUES (#{nttId},#{bbsId},#{nttSj},#{nttCn},#{frstRegisterId},SYSDATE()) </insert> </mapper>
간략하게 내용을 살펴보자면 namespace는 xml 에 접근할 클래스? 라고보면된다
그리고 resultMap은 BoardVo에 변수(property)들과 db칼럼들을 맵핑한 결과를 만드는 어떠한 객체라고 생각해야한다.
<select id="Articlelist" parameterType="pet.com.bbs.service.BoardVO" resultMap="boardlist"> SELECT NTT_ID,BBS_ID,NTT_CN,NTT_SJ,FRST_REGISTER_ID,FRST_REGIST_PNTTM FROM COMTNBBS WHERE BBS_ID = #{bbsId} </select>
id - 접근할 이름
parameterType - 파라미터로 넣어줄 객체에 타입
resultMap - sql실행결과 나온 값을 넘겨줄 Map
<insert id="Articleinsert" parameterType="pet.com.bbs.service.BoardVO"> INSERT INTO COMTNBBS (NTT_ID,BBS_ID,NTT_SJ,NTT_CN,FRST_REGISTER_ID,FRST_REGISTER_PNTTM) VALUES (#{nttId},#{bbsId},#{nttSj},#{nttCn},#{frstRegisterId},SYSDATE()) </insert>
select 문과 속성 내용들은 같다
이렇게 xml을 만든뒤 selectServiceimpL로 돌아가자
ArticleServiceimpL.java
package pet.com.bbs.service.impl; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; import pet.com.bbs.service.ArticleService; import pet.com.bbs.service.BoardVO; import pet.com.sql.CommonDAO; @Service("ArticleService") public class ArticleServiceimpL implements ArticleService{ @Resource(name = "commonDAO") private CommonDAO commondao; @Override public List<BoardVO> Articlelist(BoardVO boardvo) { List<BoardVO> boardlist = commondao.selectList("ArticleDAO.Articlelist",boardvo); return boardlist; } @Override public void Articleinsert(BoardVO boardvo) { } }
ArticleServiceimpL에서 commondao를 불러온뒤 commondao가 상속받은 EgovComAbstractDAO 클래스 안에 있는
selectList 메소드를 사용하여 쿼리Id 와 파라미터값인 boardvo를 보내준다
이제 컨트롤러에서 완성시킨 서비스 로직을 불러온다
ArticleController.java
@Controller @SuppressWarnings({ "rawtypes", "unchecked", "static-access" }) public class ArticleController { @Resource(name = "ArticleService") private ArticleService articleservice; @RequestMapping("/pet/bbs/Articlelist.do") public String Articlelist(@ModelAttribute("searchVO") BoardVO boardVO, ModelMap model) throws Exception{ System.out.println("--------ssssssss--------------"); System.out.println("----------------------"+boardVO.getBbsId()); List<BoardVO> boardlist = articleservice.Articlelist(boardVO); model.addAttribute("result",boardlist); return "pet/bbs/Articlelist"; } }
@Resource로 Serviceimpl에서 설정한 @Service이름을 불러온뒤 articleservice를 선언하자
그후 model.addAttribute 를 사용하는데
첫번째 파라미터는 "result" 로 jsp에 내용을 전달할때 어떤 이름으로 전달하냐라는 파라미터이고
두번째 파라미터는 어떤 값을 전달하냐라는것이다. 우리는 articleservice로 게시판에 목록을 가져오므로
그 값을 두번째 파라미터로 저장해주면 된다.
2.LIST 수정
Articlelist.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <div class="container"> <div class = "row"> <table class="table table-striped" style="text-align:center; border:1px solid #dddddd"> <thead> <tr> <th style="background-color: #eeeeee; text-align: center;">번호</th> <th style="background-color: #eeeeee; text-align: center;">제목</th> <th style="background-color: #eeeeee; text-align: center;">작성자</th> <th style="background-color: #eeeeee; text-align: center;">작성일</th> </tr> </thead> <tbody> <c:forEach items="${result}" var="resultInfo" varStatus="status"> <tr> <form name=subForm action="<c:url value='/pet/bbs/Articledetail.do'/>" method='post'> <input name="nttId" type="hidden" value="<c:out value="${resultInfo.nttId}"/>"> <input name="bbsId" type="hidden" value="<c:out value="${resultInfo.bbsId}"/>"> <td><c:out value='${resultInfo.nttId}'/></td> <td><c:out value='${resultInfo.nttSj}'/></td> <td><c:out value='${resultInfo.frstRegisterId}'/></td> <td><c:out value='${resultInfo.frstRegisterPnttm}'/></td> </form> </tr> </c:forEach> </tbody> </table> <div class="btn btn-primary pull-right"> <span><a href="<c:url value='/adm/bbs/insertArticleView.do?bbsId=${searchVO.bbsId}' />">글쓰기</a></span> </div> </div> </div> </body> </html>
위와 같이 jsp를 수정하자
여기서 나오는 <c:foreach> ,<c:url> ,<c:out>은 jstl 문법으로 간략히 소개하자면
<c:forach>는 items 에서 받은 값(controller에서 'result'로 이름을 명명한뒤 보내준값 ) 을 var(resultInfo )라는 값으로
하나씩 돌려주며 items값이 다 나올때가지 반복해준다
아래와 같은 model로 attribute를 추가할때 파라미터 첫번째 이름인 result를
jsp에서 ${변수명} 즉 ${result}로 받을수있다.
또한 스프링에서는 아래와같이 @ModelAttribute로 ("이름") 을 설정한 것도
JSP에서 그대로 전달되어 ${searchVO} 처럼 쓸수있다.
<c:url>태그는 URL에 자동으로 COntext path를 붙여주는 태그이며 <c:out>은 어떤 값을 입력받던지 간에 콘솔이 아닌 화면에 문자열로 바꾸어서 보여주는 역할이다.
이제 리스트가 화면에 제대로 나오는지 확인해보자
DB comtnbbs테이블 안에 2개의 로우를 저장해본뒤 서버를 실행하자
우리가 원하는 DB내용 목록들을 잘 나타내어준다
다음 글에서는 글쓰기 과정을 설명할것이다~
끝~~
728x90반응형'자바웹프로그래밍 > 전자정부프레임워크' 카테고리의 다른 글
전자정부프레임워크를 이용 쇼핑몰 만들기 #5-insert (1) 2020.04.26 전자정부프레임워크를 이용 쇼핑몰 만들기 #3 (2) 2020.04.25 전자정부프레임워크를 이용 쇼핑몰 만들기 #2 (0) 2020.04.25 전자정부프레임워크를 이용 쇼핑몰 만들기 #1 (0) 2020.04.15 전자정부프레임워크 뼛속까지 알아보자#5 -(jstl) (0) 2020.04.06