๐Ÿ“˜ Spring Mybatis

MYBatis

  • ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์ธ ์ž๋ฐ”์˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ข€ ๋” ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€ ์ฃผ๋Š” ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„ ์›Œํฌ
  • JDBC๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—‘์„ธ์Šคํ•˜๋Š” ์ž‘์—…์„ ์บก์Šํ™”ํ•˜๊ณ  ์ผ๋ฐ˜ SQL ์ฟผ๋ฆฌ, ์ €์žฅ ํ”„๋กœ ์‹œ์ € ๋ฐ ๊ณ ๊ธ‰ ๋งคํ•‘์„ ์ง€์›ํ•˜๋ฉฐ ๋ชจ๋“  JDBC ์ฝ”๋“œ ๋ฐ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ์ค‘๋ณต์ž‘์—…์„ ์ œ๊ฑฐ
  • Mybatis์—์„œ๋Š” ํ”„๋กœ๊ทธ๋žจ์— ์žˆ๋Š” SQL์ฟผ๋ฆฌ๋“ค์„ ํ•œ ๊ตฌ์„ฑํŒŒ์ผ์— ๊ตฌ์„ฑํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ์™€ SQL์„ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ

MYBatisํŠน์ง•

  • ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋‚˜ ๋‹ค์ด๋‚˜๋ฏนํ•œ ์ฟผ๋ฆฌ์— ๊ฐ•ํ•จ
  • ๋น„์Šทํ•œ ์ฟผ๋ฆฌ๋Š” ๋‚จ๋ฐœํ•˜๊ฒŒ ๋˜๋Š” ๋‹จ์ 
  • ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ์™€ sql์ฟผ๋ฆฌ์˜ ๋ถ„๋ฆฌ๋กœ ์ฝ”๋“œ์˜ ๊ฐ„๊ฒฐ์„ฑ ๋ฐ ์œ ์ง€๋ณด์ˆ˜์„ฑ ํ–ฅ์ƒ
  • resultType, resultClass๋“ฑ Vo๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์กฐํšŒ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž ์ •์˜ DTO, MAP ๋“ฑ์œผ๋กœ ๋งตํ•‘ํ•˜์—ฌ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค
  • ๋น ๋ฅธ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜์—ฌ ์ƒ์‚ฐ์„ฑ์ด ํ–ฅ์ƒ๋œ๋‹ค
  • SQL์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์ž๋ฐ” ๋นˆ์ฆˆ ๋˜๋Š” Map๊ฐ์ฒด์— ๋งคํ•‘ํ•ด์ฃผ๋Š” Persistence ์†”๋ฃจ์…˜์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. SQL์„ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ XML๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค
  • SQL๋ฌธ๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ ๊ตฌํ˜„ํ•œ๋‹ค
  • ๋ฐ์ดํ„ฐ ์†Œ์Šค ๊ธฐ๋Šฅ๊ณผ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค

MyBatis ์žฅ์ 

  1. ์ ‘๊ทผ์ด ์‰ฝ๊ณ  ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐ
  2. SQL๋ฌธ๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฝ”๋“œ๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์–ด์„œ SQL๋ฌธ์— ๋ณ€๊ฒฝ์ด ์žˆ์„๋•Œ๋งˆ๋‹ค ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ปดํŒŒ์ผ ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
  3. ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค

MyBatis๋‹จ์ 

  1. ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ์‹œ SQL์ฟผ๋ฆฌ๋ฅผ ์ง์ ‘ ์ˆ˜์ •ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค
  2. ๋ฐ˜๋ณต๋œ ์ฟผ๋ฆฌ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๋ฐ˜๋ณต ์ž‘์—…์ด ์žˆ๋‹ค.
  3. ์ฟผ๋ฆฌ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ข…์†๋œ ์ฟผ๋ฆฌ๋ฌธ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  4. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณ€๊ฒฝ์‹œ ๋กœ์ง๋„ ํ•จ๊ป˜ ์ˆ˜์ •ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค

์“ฐ๋Š”๋ฒ•

  1. Mapper.xml์— sql๋ฌธ์„ ๋“ฑ๋กํ•œ๋‹ค.
  2. @Autowired private SqlSession sqlSession;
  3. public StudentVO read(String id) throws Exception StudentVO vo = sqlSession.selectOne(namespace+โ€.selectByidโ€, id); return vo;

ํƒœ๊ทธ:

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: