Spring MyBatis - accidentlywoo/legacyVue GitHub Wiki
Spring MyBatis
Spring-jdbc๋ชจ๋์ ์คํ๋ง์ด ๊ทธ ์์ฒด๋ก ๊ฐ์ง๊ณ ์๋ JDBC์ฉ ๊ฐ๋ฐ ๋ชจ๋๋ก ์ด ์์ฒด๋ง ์ด์ฉํด์ ๊ฐ๋ฐํ ์ ์์ง๋ง, MyBatis๋งํผ ๊ฐ๋ฐ์ ํธ๋ฆฌํจ์ ์ ๊ณตํ์ง๋ ๋ชปํ๋ค. JDBC๋ฅผ ์ด์ฉํด์ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ๊ฒ๊ณผ ๋น๊ตํ๋ฉด MyBatis๋ ๋ค์๊ณผ๊ฐ์ ํธ๋ฆฌํจ์ ์ ๊ณตํ๋ค.
๊ฐ๊ฒฐํ ์ฝ๋์ ์ฒ๋ฆฌ
MyBatis๋ ํต์ SQL Mapper ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ํต์์ ์ผ๋ก JDBC ์์ ์ ํ๊ฒ ๋๋ฉด ๊ฐ๋ฐ์๋ ๋ง์ ์ฝ๋๋ฅผ ๋ฐ๋ณตํ๊ฒ ๋๋๋ฐ,์๋ฅผ ๋ค์ด try ~ catch ~ finally๋ฅผ ์ด์ฉํ๋ ์ฒ๋ฆฌ์์๋ถํฐ, PreparedStatement์ ResultSet์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ๊น์ง ๋ง์ ์ฝ๋๋ฅผ ์ง์ ์์ฑํ๊ฒ ๋๋ค.๋ฐ๋ฉด์ MyBatis๋ ์ด๋ฌํ ์ฝ๋๋ฅผ ์๋นํ ๋ง์ด ์ค์ฌ ์ค ์ ์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์ ์๋๋ฅผ ํฅ์ํ๋๋ฐ ํฌ๊ฒ ๊ธฐ์ฌํ๋ค. ์คํ๋ง๊ณผ MyBatis๋ฅผ ๊ฐ์ด ๊ฒฐํฉํ๊ฒ ๋๋ฉด ์ฝ๋ ์ ์ ์์ด๋ JDBC์ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๊ฒ ๋๋ค.
SQL ๋ฌธ์ ๋ถ๋ฆฌ์ด์
JDBC๋ ๊ฐ๋ฐ์๊ฐ SQL๋ฌธ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด์ ๋ณ๋์ ํ์ผ์ ์์ฑํ๋ ๋ฑ์ ๋ฒ๊ฑฐ๋ก์ด ์์ ์ด ํ์ํ์ง๋ง, MyBatis์ ๊ฒฝ์ฐ๋ XML ํน์ ์ ๋ ธํ ์ด์ ๋ฐฉ์์ผ๋ก SQL ๋ฌธ์ ๋ณ๋๋ก ์ฒ๋ฆฌํ๋ ์์ ์ด ๊ฐ๋ฅํ๊ณ , ํ์ํ ๊ฒฝ์ฐ์๋ ๋ ๊ฐ์ง ๋ฐฉ์์ ํผํฉํด์ ์ฌ์ฉํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
Spring๊ณผ์ ์ฐ๋์ผ๋ก ์๋ํ๋ ์ฒ๋ฆฌ
์คํ๋ง ํ๋ ์์ํฌ์ MyBatis๋ฅผ ์ฐ๊ณํ๋ MyBatis-Spring ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ๋ฉด, ๊ฐ๋ฐ์๋ ์ง์ SQL๋ฌธ์ ํธ์ถ ์์ด๋ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค. ์ด๋ MyBatis-Spring๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ง๋ค์ด๋ด๋ ํด๋์ค ๋๋ถ์ธ๋ฐ, ์ด ๋๋ฌธ์ MyBatis๋ ๋จ๋ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค๋ ์คํ๋ง๊ณผ ์ฐ๊ณํด์ ์ฌ์ฉํ๋ ํธ์ด ์คํ๋ ค ์ฝ๋์ ์์ ์ค์ฌ์ฃผ๊ฒ ๋๋ค.
๋์ SQL์ ์ด์ฉํ ์ ์ด ๊ธฐ๋ฅ
MyBatis๋ ๊ธฐ๋ณธ์ ์ผ๋ก SQL ๋ฌธ์ ์ฒ๋ฆฌํ๊ธฐ๋ ํ์ง๋ง, ์ฝ๊ฐ์ ์ฌ์ด๋ฌธ์ด๋ ๋ฃจํ ๋ฑ์ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด๋ฅผ ํตํด์ SQL๊ณผ๊ด๋ จ๋ ์ฒ๋ฆฌ๋ฅผ Java ์ฝ๋์์ ๋ถ๋ฆฌํ ์ ์๋ค