๐ŸŒ WEB/Spring

Mapper Interface?

์• ์ •์“ฐ 2020. 7. 23. 20:49

๋ฉด์ ‘๋ณด๊ธฐ ์œ„ํ•ด ๊ณผ์ œ๋ฅผ ํ•ด์•ผ ํ–ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ๋ฅผ ํŒŒ์ผ์„ ๋ฐ›์•˜๋Š”๋ฐ ๊ณ„์† ๊ตฌํ˜„ํ•ด์˜ค๋˜ ๊ตฌ์กฐ์™€๋Š” ๋งŽ์ด ๋‹ฌ๋ผ์„œ ์‹œ๊ฐ„์„ ๋งŽ์ด ์ผ๋‹ค.

ํ•˜์ง€๋งŒ ์—ญ์‹œ๋‚˜ ์ธํ„ฐ๋„ท์„ ์ž์„ธํžˆ ๋ณด๊ณ  ์—„์ฒญ๋‚œ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ํ•œ ํ›„์— ์ ์‘ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์–ธ์ œ ๋‹ค์‹œ ์“ธ ์ˆ˜ ์žˆ์„์ง€ ๋ชฐ๋ผ ๊ธฐ๋กํ•ด ๋‘๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

Mapper์˜ SQL ID์™€ Mapper Interface์˜ ๋ฉ”์„œ๋“œ๋ช…๊ณผ ์ •ํ™•ํžˆ ๋งค์นญํ•ด์ค€๋‹ค๋ฉด ์ž๋ฐ”์—์„œ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ๋•Œ๋ฌธ์—

์˜คํƒ€์— ๋Œ€ํ•œ ๊ฑฑ์ •์ด ์—†๋‹ค. 

 

 

๊ฐœ๋ฐœ์„ ๋ฐฐ์šฐ๋ฉด์„œ ์“ฐ๋˜ ๊ตฌ์กฐ๋Š” ๋Œ€์ถฉ ์ด๋Ÿฐ์‹์ด์—ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด๋ฒˆ์— ๋ฐ›์€ ๊ณผ์ œ๋Š” Mapper Interface, Service class, sql.xml ์ด๋ ‡๊ฒŒ 3๊ฐ€์ง€๋กœ ์žˆ์—ˆ๋‹ค.

 

์ฒ˜์Œ ๋ณธ ๊ตฌ์กฐ

1.propertis์—์„œ ์•Œ๋ฆฌ์•„์Šค๋ฅผ ์ด์šฉํ•ด sql์—์„œ dto๋กœ ์—ฐ๊ฒฐํ•ด์ฃผ๋˜ ๊ฒƒ์„ annotation์„ ์‚ฌ์šฉํ•˜๋ฉด ์•„์ฃผ ๊ฐ„๋‹จํ•˜๊ฒŒ

์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

<์‚ฌ์šฉ ํ•˜๋˜ ๊ตฌ์กฐ>

์ด์ „์— ์‚ฌ์šฉํ•˜๋˜ mapper.xml์—์„œ ํ’€๋„ค์ž„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก alias๋ฅผ ์‚ฌ์šฉํ•ด์ฃผ๋Š” ๋ชจ์Šต๋‹ˆ๋‹ค.

 

์–ด๋…ธํ…Œ์ด์…˜์„ ํ™œ์šฉ

<์ฒ˜์Œ ๋ณธ ๊ตฌ์กฐ>

์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด dto class์— Alias๋ฅผ ์‚ฌ์šฉํ•ด์ฃผ์—ˆ๋‹ค.

์‚ฌ์šฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 

 

 

์šฐ์„  sqlSessionFactory๋ฅผ ์ •์˜ํ•ด๋‘” contextํŒŒ์ผ์—์„œ ์œ„์— <property name="typeAliasesPackage" value="ํŒจํ‚ค์ง€" />

ํ•ด๋‹น dto๋ฅผ ํฌํ•จํ•œ ํŒจํ‚ค์ง€๋ฅผ value๋กœ ๋‘๊ณ  property๋ฅผ ์ถ”๊ฐ€ ํ•ด์ค€๋‹ค๋ฉด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋จผ์ € dto or vo์— @Alias๋ฅผ ์ •์˜ํ•ด์ฃผ์‹  ๋‹ค์Œ์— ํ•ด๋‹น mapper.xml๋กœ ์ด๋™ํ•˜์…”์„œ ํ•„์š”ํ•œ

resultType์ด๋‚˜ parameterType์— ์ •์˜ ํ•ด์ฃผ์‹œ๋ฉด๋ฉ๋‹ˆ๋‹ค!

 

2.์ด๋•Œ namespace์™€ Mapper Interface์™€ ์ด๋ฆ„์„ ๊ฐ™๊ฒŒ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

 

namespace = com.(  ).potal.user.mapper.UserMapeer 

 

3. interface์•ˆ์— ๋ฉ”์„œ๋“œ ์ด๋ฆ„๊ณผ mapper.xml id์™€ ์ด๋ฆ„์ด ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์œ„์— id = selectUser๊ฐ€ ์žˆ๋‹ค๋ฉด Interface์•ˆ์— public List<UserVO> selectUser(); ์ด๋ ‡๊ฒŒ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

4.๊ทธ Interface๋ฅผ Service๊ฐ€ ์ƒ์†๋ฐ›์•„ Override๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ ํ•ฉ๋‹ˆ๋‹ค!

๋‹ค์Œ์—, @Autowired๋ฅผ ์ด์šฉํ•˜์—ฌ Mapper Inteface๋ฅผ bean์œผ๋กœ ๋“ฑ๋กํ•ด์ค๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ถ”๊ฐ€, ์ˆ˜์ • ํ• ๋•Œ xml, Interface, service๋งŒ์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

๋ฐ˜์‘ํ˜•