๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๐ŸŒฎ ๐Ÿ’ฌ
๐ŸŒฎ Personal Project/shoppingmall service

๊ด€๋ฆฌ์ž :: ์ถ”์ฒœ์ƒํ’ˆ ๊ด€๋ฆฌ (1)

by ๋ฐ”์ฟ„๋ฆฌ 2021. 9. 22.

์˜ค๋Š˜์€ !!!!  ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€์—์„œ ๋งˆ์ง€๋ง‰ ๊ถŒํ•œ

 

์ถ”์ฒœ ์ƒํ’ˆ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด ์ค„ ๊ฒƒ์ด๋‹ค.

 

์ถ”์ฒœ ์ƒํ’ˆ์€

์ƒํ’ˆ ๊ด€๋ฆฌ์— ์žˆ๋Š” ์ƒํ’ˆ๋“ค ์ค‘์—์„œ ์„ ํƒํ•ด์„œ ๊ฐ€์ ธ์™€์„œ ์ถ”์ฒœ ์ƒํ’ˆ์„ ๋ณด์—ฌ์ค„์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค„ ๊ฒƒ์ด๋‹ค.

 

์ถ”์ฒœ ์ƒํ’ˆ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ํ™•์ธํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๊ทธ๋ƒฅ ์ƒํ’ˆ seq์™€ ์—ฐ๊ฒฐ๋œ ์นผ๋Ÿผ๋ฐ–์— ์—†๋‹ค.

 

๊ทธ๋Ÿผ inner join์œผ๋กœ seq๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ์ƒํ’ˆ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€์•ผ๊ฒ ๊ตฐ์š”~

 

(1) ์ถ”์ฒœ ์ƒํ’ˆ์œผ๋กœ ์ถ”๊ฐ€ํ•œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ 

(2) ์ถ”์ฒœ ์ƒํ’ˆ ๋ฆฌ์ŠคํŠธ์— ์—†๋Š” ์ƒํ’ˆ๋“ค์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ด๊ณ 

(3) ์ถ”์ฒœ ์ƒํ’ˆ์„ ์ถ”๊ฐ€ํ•ด์ค„ ๊ฒƒ์ด๊ณ 

(4) ์ถ”์ฒœ ์ƒํ’ˆ ๋ฆฌ์ŠคํŠธ์—์„œ ์‚ญ์ œํ•˜๋Š”

 

4๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ๋™์‹œ์— ํ•  ๊ฒƒ์ด๋‹ค !!

 

๋ˆˆ ๋˜‘๋ฐ”๋กœ ๋œจ๊ณ  ์‹œ์ž‘ํ•˜์ž์š”~

 

(๊ทธ๋ฆฌ๊ณ  Recommand ํด๋”๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์„œ ์ง„ํ–‰ํ• ๊นŒ ํ–ˆ๋Š”๋ฐ ..๊ทธ๋ƒฅ Productํด๋”์—์„œ ๋ชจ๋‘ ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜์ž)

 

๊ทธ๋Ÿผ ์ด์ œ mapper.xml๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์ž

 

ProductMapper.xml

์œ„์—์„œ ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ

 

์ถ”์ฒœ์ƒํ’ˆ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ , ์ถ”์ฒœ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ ,

์ถ”์ฒœ์ƒํ’ˆ์„ ์ถ”๊ฐ€ํ•˜๊ณ , ์‚ญ์ œํ•˜๋Š” sql๋ฌธ์ด๋‹ค.

 

์ด sql๋ฌธ์€ ๋””๋น„๋ฒ„์—์„œ ๊ฒ€์ฆ์„ ๋งˆ์นœ ์นœ๊ตฌ๋“ค์ด๋‹ค.

 

๊ทธ๋Ÿผ ์ด์ œ mapper.java๋กœ ๊ฐ€์ž

 

ProductMapper.java

๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” select์€

์ถ”์ฒœ์ƒํ’ˆ๊ณผ ๋น„์ถ”์ฒœ์ƒํ’ˆ๋“ค์„ ๋ฆฌ์ŠคํŠธ๋กœ ์ถœ๋ ฅํ•  ๊ฒƒ์ด๊ธฐ์— 

return๊ฐ’์„ list๋กœ ํ•ด์ฃผ๊ณ 

์ถ”๊ฐ€ํ•˜๊ณ  ์‚ญ์ œํ•˜๋Š” ์• ๋“ค์€ return ๊ฐ’์ด ์—†๊ธฐ์— void๋กœ ํ•ด์ค€๋‹ค.

 

ProductService.java

์„œ๋น„์Šค๊นŒ์ง€ ์ž‘์„ฑํ–ˆ์œผ๋‹ˆ, ์ด์ œ API๋กœ ๊ฐ€์ž !!

 

ProductAPIController.java

๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์• ๋“ค์€ GetMapping

์ถ”์ฒœ์ƒํ’ˆ์„ ์ถ”๊ฐ€ํ•˜๋Š” ์• ๋Š” PutMapping, ์‚ญ์ œํ•˜๋Š” ์• ๋Š” DeleteMapping ์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

 

์ถ”์ฒœ์ƒํ’ˆ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ž„์˜๋กœ ์ƒํ’ˆ seq๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ 

arc๋ฅผ ํ†ตํ•ด ์ž˜ ์ž‘๋™๋˜๋Š”์ง€ ํ™•์ธํ•ด์ฃผ์—ˆ๋‹ค.

 

์ถ”์ฒœ ์ƒํ’ˆ ๋ฆฌ์ŠคํŠธ ์ž˜ ๋‚˜์˜ค๊ณ ์š”

 

๋น„์ถ”์ฒœ์ƒํ’ˆ ๋ฆฌ์ŠคํŠธ๋„ ์ž˜ ๋‚˜์˜ค๊ณ ์š”

 

์ถ”์ฒœ ์ƒํ’ˆ ์ถ”๊ฐ€๋„ ์ž˜๋˜๊ณ ์š”

 

์‚ญ์ œ๋„ ์ž˜๋˜๋„ค์šฉ

 

๊ทธ๋Ÿผ ์ด์ œ jsp์—์„œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์™€์ค„ table์„ ๋งŒ๋“ค์–ด์ฃผ์ž

 

recommand.jsp

๊ทธ๋Ÿผ์ด์ œ js๋กœ ๊ฐ€์„œ ๋ฆฌ์ŠคํŠธ๋ฅด ๊ฐ€์ ธ์™€์ฃผ์ž

 

product.js

ajax๋ฅผ ํ†ตํ•ด ๊ฐ€์ ธ์™”๋‹ค

 

๋ฆฌ์ŠคํŠธ๋Š” ๊ฐ€์ ธ์™€์กŒ๋Š”๋ฐ null ...

null ์‚ฌ๋ž‘ํ•˜์ง€ ์•Š์•„ ....

์ž .. ์„œ๋น„์Šค๊ฐ€์„œ  ์ฒ˜๋ฆฌํ•ด์ฃผ์ž

 

ProductService.java

์ƒํ’ˆ๊ด€๋ฆฌ์—์„œ ์ƒํ’ˆ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•  ๋•Œ ์ฒ˜๋ฆฌํ•ด์คฌ๋˜ ์• ๋“ค์„ ์ฐธ๊ณ (๋ณต๋ถ™)ํ•ด์„œ ๊ฐ€์ ธ์™”๋‹ค.

 

์งœ์ž” ~ ์ž˜๋‚˜์™€์œ 

 

์šฐ์ธก์— ์žˆ๋Š” ์‚ญ์ œํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ํ™œ์„ฑํ™” ์‹œ์ผœ์ฃผ์ž

 

recommand.js

์‚ฌ์ดํŠธ๋กœ ๊ฐ€์„œ ์‚ญ์ œํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋‹ˆ, 

๋‹ค์Œ๊ณผ ๊ฐ™์€ alert๊ณผ ํ•จ๊ป˜ ์‚ญ์ œ๊ฐ€ ๋จ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

confirm์„ ์ถ”๊ฐ€ํ•ด์ฃผ์ž

 

recommand.js

์ด์ œ confirm์„ ํ•œ๋ฒˆ ๊ฑฐ์ณ์•ผ ์‚ญ์ œ๊ฐ€ ๋œ๋‹ค.

 

 

๊ฒŒ์‹œ๋ฌผ์ด ๊ธธ์–ด์งˆ ๊ฒƒ ๊ฐ™์•„์„œ

๋‹ค์Œ ๊ฒŒ์‹œ๋ฌผ์— ์ด์–ด์„œ

 

๋น„์ถ”์ฒœ์ƒํ’ˆ ๋ฆฌ์ŠคํŠธ๋ฅผ ํŒ์—…์ฐฝ์œผ๋กœ ๋“ค๊ณ ์™€์„œ ๋ฒ„ํŠผ์„ ์ด์šฉํ•ด ์ƒํ’ˆ ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€ํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค.