MapleStory Finger Point

๐ŸŸค JAVA/๐ŸŸค JSP

๐Ÿ’ข[JSP] JDBC vs Mybatis (๋งˆ์ด๋ฐ”ํ‹ฐ์Šค)

HYEJU01 2024. 7. 14. 01:47

 

 

JDBC์˜ ๋ถˆํŽธํ•จ…

  • JDBC๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ row level๋ถ€ํ„ฐ ORM์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์„ ๊ฐ€์ง„๋‹ค.
  • ํ•˜์ง€๋งŒ, ๋„ˆ๋ฌด ๋งŽ์€ ์ฝ”๋“œ๊ฐ€ ๋ฐ˜๋ณต๋˜๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

Persistence Framework๋ž€?

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ์™€ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ(์˜ˆ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค) ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ด€๋ฆฌํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

Persistence Framework๋Š” ๋‘ ์ข…๋ฅ˜๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

 


๋งˆ์ด๋ฐ”ํ‹ฐ์Šค๋ž€?

  • MyBatis ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง€์ •ํ•œ SQL, ๊ณ ๊ธ‰ ๋งคํ•‘์„ ์ง€์›ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.
  • MyBatis ๋Š” JDBC ์ฝ”๋“œ์™€ ์ˆ˜๋™์œผ๋กœ ์…‹ํŒ…ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ๊ฒฐ๊ณผ ๋งคํ•‘์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  • MyBatis ๋Š” ๋ณต์žกํ•œ JDBC์ฝ”๋“œ๋ฅผ ๊ฑท์–ด๋‚ด๋ฉฐ ๊น”๋”ํ•œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • MyBatis ๋Š”  DAO๊ณ„์ธต์„ ๋Œ€์‹ ํ•ฉ๋‹ˆ๋‹ค.
  • MyBatis ๋Š” ๊ธฐ์กด DAO์˜ Interface์˜ ๊ตฌํ˜„ํด๋ž˜์Šค๋ฅผ xmlํŒŒ์ผ์ด ๋Œ€์‹ ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

 

๋งˆ์ด๋ฐ”ํ‹ฐ์Šค ํ•ต์‹ฌ ๊ฐ์ฒด ๊ด€๋ฆฌ

  • SqlSession Factory Builder, SqlSession Factory, SqlSession์ด ์žˆ๋‹ค.

๋งˆ์ด๋ฐ”ํ‹ฐ์Šค ์„ค์ • ํŒŒ์ผ xml๋กœ ๊ด€๋ฆฌ

  • MyBatis Config File

๋งˆ์ด๋ฐ”ํ‹ฐ์Šค SQL ํŒŒ์ผ xml๋กœ ๊ด€๋ฆฌ

  • sql mapping File
  1. SqlSession Factory Builder๊ฐ€ Config File์„ ์ฝ๊ณ  Factory๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค.
  2. ๊ฐœ๋ฐœ์ž๊ฐ€ DB์— CRUD์ž‘์—…์„ ํ˜ธ์ถœํ•˜๋ฉด SqlSession Factory๊ฐ€ SqlSession๋ฅผ ์ƒ์„ฑํ•˜๊ณ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ Application์ฝ”๋“œ์— ๋ฐ˜ํ™˜ํ•ด์ค€๋‹ค.
  3. SqlSession์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ SQL๋ฌธ์„ ๋Œ€์‹  ํ˜ธ์ถœํ•ด์ค€๋‹ค.

JSP์—์„œ ๊ฐœ๋ฐœ์ž๋Š” ๋ณด๋ผ์ƒ‰ ๋ถ€๋ถ„๋งŒ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 


 

 

 

  1. ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค ์„ค์ •ํŒŒ์ผ ์ƒ์„ฑ
  2. ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค ์„ค์ •์„ ๊ด€๋ฆฌํ•˜๋Š” sessionFactory๊ฐ์ฒด ์ƒ์„ฑ
  3. mapper์ธํ„ฐํŽ˜์ด์Šค ์ƒ์„ฑ
  4. mapper๊ตฌํ˜„์ฒด ์ƒ์„ฑ
  5. ์„œ๋น„์Šค ์˜์—ญ์—์„œ ํ˜ธ์ถœ