IT/development

[mybatis] ์ƒ์„ธ ์กฐํšŒ ์‹œ ๋ณต์ˆ˜๊ฐ’ ์ถ”๊ฐ€ ์กฐํšŒ(feat. vo & map)

์•Œ ์ˆ˜ ์—†๋Š” ์‚ฌ์šฉ์ž 2022. 11. 22.

๋ชฉ์ฐจ

    ์ƒ์„ธ ์กฐํšŒ ์‹œ ๋ณต์ˆ˜๊ฐ’ ์ถ”๊ฐ€ ์กฐํšŒ ๐Ÿ˜—

    ๊ธฐ์กด ์ƒ์„ธ์กฐํšŒ API์—์„œ ์ƒ์„ธ ์กฐํšŒ ์‹œ ํ•ด์‹œํƒœ๊ทธ์™€ ๊ฐ™์€ ๋ณต์ˆ˜๊ฐ’์„ ์ถ”๊ฐ€๋กœ ์กฐํšŒํ•ด์•ผ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ฒผ๋‹ค.

    ๊ฐ€์ ธ์™€์•ผ ๋˜๋Š” ํ•„๋“œ๊ฐ’์€ 2๊ฐœ๋ฐ–์— ์•ˆ๋˜๋ฏ€๋กœ ์ถ”๊ฐ€๋กœ vo๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์ง€ ์•Š์•„ ์•„๋ž˜์ฒ˜๋Ÿผ ์ˆ˜์ •ํ–ˆ๋‹ค.

     

    Controller

    ๊ธฐ์กด์—๋Š” Controller์—์„œ return์œผ๋กœ VO๋กœ๋งŒ ๋ฐ›์•˜๋˜ ๊ฑธ map์œผ๋กœ ๋ฐ›๋„๋ก ๋ณ€๊ฒฝ, VO๊ฒฐ๊ณผ์™€ tag๋ฆฌ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ map์— ๋‹ด์•„์„œ ์ตœ์ข…์ ์œผ๋กœ return

    /**
    	 * ์ƒ์„ธ
    	 * @param
    	 * @param
    	 * @return
    	 */
    	@Operation(summary = "๋ฉค๋ฒ„ ์ƒ์„ธ ์กฐํšŒ", description = "๋ฉค๋ฒ„๋ฅผ ์ƒ์„ธ ์กฐํšŒํ•œ๋‹ค.")
    	@Parameters({@Parameter(name = "mem_no", description = "ํšŒ์› ์ผ๋ จ๋ฒˆํ˜ธ", required = true)})
    	@GetMapping("/{mem_no}")
    	public HashMap<String, Object> detail(
    			@PathVariable Long mem_no,
    	) throws Exception{
    		HashMap<String, Object> result = new HashMap<String, Object>();
    		MemberVO memberVO;
    		try {
            	// ํšŒ์› ์ƒ์„ธ ๋ชฉ๋ก
    			memberVO = memberService.selectmemberDetail(mem_no);
    			// ํƒœ๊ทธ ๋ชฉ๋ก
    			List<String> tagList = null;
    			tagList = memberService.selectTagList(mem_no);
    
    			result.put("memberVO", memberVO);
    			result.put("tagList", tagList);
    
    		}catch(Exception e) {
    			Exception.Error e = e.getError();
    			result.put("error_code", e.getError_code());
    			result.put("error_msg", e.getError_msg());
    		}
    		return result;
    	}

     

    Service

    // ํšŒ์› ์ƒ์„ธ์กฐํšŒ
    public MemberVO selectMemberDetail(Long mem_no) throws Exception {
    
        HashMap<String, Object> paramMap = new HashMap<String, Object>();
        paramMap.put("mem_no", mem_no);
        MemberVO memberVO = memberMapper.selectMemberDetail(paramMap);
    
        return memberVO;
    }
        
    // ํšŒ์› ํƒœ๊ทธ ์กฐํšŒ
    /**
     * ํ…œํ”Œ๋ฆฟ ํ•„ํ„ฐ๊ฐ’ ์ƒ์„ธ ์กฐํšŒ
     * @param template_seq
     * @return
     * @throws ServiceException
     */
    public List<String> selectTagList(Long mem_no) throws Exception{
        return memberMapper.selectTagListDetail(mem_no);
    }

     

    mapper

    // ํšŒ์› ์ƒ์„ธ์กฐํšŒ
    public MemberVO selectMemberDetail(HashMap<String, Object> param);
    
    // ํšŒ์› ํƒœ๊ทธ ๋ชฉ๋ก ์กฐํšŒ
    public List<String> selectTagList(Long mem_no);

     

    xml

    <!-- ํšŒ์› ํ•„ํ„ฐ ๋ชฉ๋ก ์กฐํšŒ -->
    	<select id="selectTagList" resultType="map">
    		SELECT    a.*
    			 	, c.tag_type
    			 	, c.tag_name
    		FROM member_tag_mapping a
    				 LEFT OUTER JOIN member b ON a.mem_no = b.mem_no
    				 LEFT OUTER JOIN tag c ON a.tag_no = c.tag_no
    		WHERE b.mem_no = #{mem_no}
    	</select>
    <!-- ํšŒ์› ์ƒ์„ธ ์กฐํšŒ -->
    <select id="selectMemberDetail" parameterType="HashMap" resultType="MemberVO">
        SELECT *
        FROM member
        WHERE mem_no = #{mem_no}
    </select>

    ๋Œ“๊ธ€