Programming/Java

[ Spring ] foreach ๋ฌธ ์‚ฌ์šฉํ•˜๊ธฐ (select ์ฟผ๋ฆฌ์™€ in ์กฐ๊ฑด)

seulye 2022. 8. 2. 17:37

๐ŸŽˆ ๋ฐฐ์—ด + select +  ์กฐํšŒ์กฐ๊ฑด in ์กฐํ•ฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒŒ ๋ฐ”๋กœ foreach !

 

ํ•™์ƒ id๋ฅผ ํฌํ•จํ•œ ํ•™์ƒ ์ธ์ ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์žˆ๋Š” ๋ฐฐ์—ด์ด ์žˆ๋‹ค๊ณ  ํ•  ๋•Œ, ๊ทธ ๋ฐฐ์—ด๋กœ ํ•™์ƒ์˜ ์„ฑ์ ์„ ์กฐํšŒํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ํ•ด๋ณด์ž.

์ผ๋‹จ = ๋กœ๋Š” ์กฐํšŒํ•  ์ˆ˜ ์—†๊ณ , in์„ ์ƒ๊ฐํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, in (1,2,3,4,5) ์ด๋Ÿฐ์‹์œผ๋กœ ์˜ˆ์˜๊ฒŒ ๋“ค์–ด๊ฐˆ๋ฆฌ ๋งŒ๋ฌดํ•˜๋‹ค ใ… ใ… 

์‹œ๋„ํ•ด๋ดค๋Š”๋ฐ in ('1,2,3,4,5') ์ด๋ ‡๊ฒŒ ๋“ค์–ด๊ฐ€๋ฒ„๋ฆฐ๋‹ค..

 

์•”ํŠผ ์ด๋Ÿด ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” foreach!

 

collection : ์ „๋‹ฌ๋ฐ›์€ ์ธ์ž. List or Array ํ˜•ํƒœ๋งŒ ๊ฐ€๋Šฅ

item : ์ „๋‹ฌ๋ฐ›์€ ์ธ์ž ๊ฐ’์„ alias ๋ช…์œผ๋กœ ๋Œ€์ฒด

open : ๊ตฌ๋ฌธ์ด ์‹œ์ž‘๋ ๋•Œ ์‚ฝ์ž…ํ•  ๋ฌธ์ž์—ด

close : ๊ตฌ๋ฌธ์ด ์ข…๋ฃŒ๋ ๋•Œ ์‚ฝ์ž…ํ•  ๋ฌธ์ž์—ด

separator : ๋ฐ˜๋ณต ๋˜๋Š” ์‚ฌ์ด์— ์ถœ๋ ฅํ•  ๋ฌธ์ž์—ด

index : ๋ฐ˜๋ณต๋˜๋Š” ๊ตฌ๋ฌธ ๋ฒˆํ˜ธ. 0๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฆ๊ฐ€

 

SELECT *
  FROM student_score
 WHERE student_id in
 <foreach collection="studentIdArr" item="item" index="index" separator="," open="(" close=")">
      #{item.id}
</foreach>

xml ํŒŒ์ผ์—๋Š” ์ด๋ ‡๊ฒŒ ์จ์ฃผ๋ฉด ๋œ๋‹ค. 

 

() => {
	const studentIdArr: any[] = [];
    	for (let i = 0; i < studentInfoList?.length; i+=1){
    	studentIdArr.push({
        	id : studentInfo[i].studentId
        });
    }
}

ํ”„๋ก ํŠธ์—”๋“œ (ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ, ๋ฆฌ์•กํŠธ)์—์„œ studenetIdArr๋Š” ์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑํ•ด์ฃผ์—ˆ๋‹ค.

์ €๋ ‡๊ฒŒ 'id'๋ผ๋Š” key๊ฐ€ ์žˆ์–ด์•ผ ๋“ค์–ด๊ฐ€๋”๋ผ.. studentInfoList๊ฐ€ object๋ผ์„œ ์ €๋ ‡๊ฒŒ studentIdArr ๋ฐฐ์—ด์— push๋ฅผ ํ•ด์ฃผ์—ˆ์ง€๋งŒ,

๋ฐฐ์—ด์ด๋ผ๋ฉด ๊ตณ์ด for๋ฌธ ๋Œ๋ฆด ํ•„์š” ์—†๋‹ค.