IT/development

[mybatis] parameter ๊ฐ’ ๋™์‹œ ์ „๋‹ฌ

์•Œ ์ˆ˜ ์—†๋Š” ์‚ฌ์šฉ์ž 2024. 3. 31.

๋ชฉ์ฐจ

    mybatis์— ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ์‹œ vo์˜ ํ•„๋“œ์™€ vo์•ˆ์˜ list ๋™์‹œ ์ „๋‹ฌ


    javascript

    if (confirm("์ €์žฅํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?")) {
    
    	dlbrList = [];
    
    	$('#tab3Body tr').each(function() {
            var rowData = {
    			'exmnSn': $(this).find('#exmnSnId').val() 
            }
            dlbrList.push(rowData);
        });
    
    	var paramData = {
    		cmitNo: $("#cmitNoId").val(),
    		mtgMngNo: $("#mtgMngNoId").val(),
            //vo์•ˆ์˜ list๋ช…๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•จ
    		dlbrList: dlbrList
    	};
    
    	$.ajax({
    		url: '/save.do',
    		method: 'POST',
    		data: JSON.stringify(paramData),
    		dataType:'json',
    		contentType: 'application/json',
    		success: function (data) {
    			if (data.code === "1") {
    				alert("์„ฑ๊ณต");
    				fn_moveList();
    			} else {
    				alert("์‹คํŒจ");
    			}
    		},
    		error: function (err) {
    			alert("์˜ค๋ฅ˜");
    			console.error('Error fetching data: ', err);
    		}
    	});
    }

    controller

    @PostMapping("/save.do")
    public ModelAndView save(@RequestBody DlbrVO paramVO) {
    
        ModelAndView mav = new ModelAndView();
        mav.setViewName("jsonView");
        mav.addObject("code", dlbrService.selectList(paramVO));
        return mav;
    }

    vo

    @Data
    public class DlbrVO {
                                    
        private String cmitNo;          
        private String mtgMngNo;        
        private String exmnSn;                      
    	//ํ™”๋ฉด์—์„œ ์ „๋‹ฌํ•˜๋Š” list๋ช…๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•จ
        private List<DlbrVO> dlbrList = new ArrayList<>();
    }

    mapper

    public List<DlbrVO> selectList(DlbrVO paramVO);

    mybatis

    <select id="selectList" parameterType="DlbrVO" resultType="DlbrVO">
        SELECT *
          FROM BOARD
         <where>
         	<!-- vo์˜ ํ•„๋“œ๊ฐ’ -->
            AND MTG_MNG_NO = #{mtgMngNo} AND CMIT_NO = #{cmitNo}
            AND EXMN_SN IN
            <!-- vo์•ˆ์˜ dlbrList์˜ ๊ฐ’ -->
            <foreach collection="dlbrList" item="item" open="(" separator="," close=")">
                #{item.exmnSn}
            </foreach>
         </where>
    </select>

    ์ „๋‹ฌ parameter๊ฐ’ ์˜ˆ์‹œ

    DlbrVO: {
    	 cmitNo: "1"
       , mtgMngNo: "mtg00001"
       , dlbrList:[
           {
              cmitNo: ""
            , mtgMngNo: ""
            , exmnSn: "1"
           }
           , 
           {
    		  cmitNo: ""
            , mtgMngNo: ""
            , exmnSn: "2"
           }
       ]
    }

    ๊ฐœ์ธ ์Šคํ„ฐ๋”” ๊ธฐ๋ก์„ ๋ฉ”๋ชจํ•˜๋Š” ๊ณต๊ฐ„์ด๋ผ ํ‹€๋ฆฐ์ ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ‹€๋ฆฐ ์  ์žˆ์„ ๊ฒฝ์šฐ ๋Œ“๊ธ€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

    ๋Œ“๊ธ€