Spring Mybatis
๐ Spring Mybatis
MYBatis
- ๊ฐ์ฒด ์งํฅ ์ธ์ด์ธ ์๋ฐ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋ก๊ทธ๋๋ฐ์ ์ข ๋ ์ฝ๊ฒ ํ ์ ์๊ฒ ๋์ ์ฃผ๋ ๊ฐ๋ฐ ํ๋ ์ ์ํฌ
- JDBC๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ธ์คํ๋ ์์ ์ ์บก์ํํ๊ณ ์ผ๋ฐ SQL ์ฟผ๋ฆฌ, ์ ์ฅ ํ๋ก ์์ ๋ฐ ๊ณ ๊ธ ๋งคํ์ ์ง์ํ๋ฉฐ ๋ชจ๋ JDBC ์ฝ๋ ๋ฐ ๋งค๊ฐ ๋ณ์์ ์ค๋ณต์์ ์ ์ ๊ฑฐ
- Mybatis์์๋ ํ๋ก๊ทธ๋จ์ ์๋ SQL์ฟผ๋ฆฌ๋ค์ ํ ๊ตฌ์ฑํ์ผ์ ๊ตฌ์ฑํ์ฌ ํ๋ก๊ทธ๋จ ์ฝ๋์ SQL์ ๋ถ๋ฆฌํ ์ ์๋ ์ฅ์ ์ ๊ฐ์ง๊ณ ์์
MYBatisํน์ง
- ๋ณต์กํ ์ฟผ๋ฆฌ๋ ๋ค์ด๋๋ฏนํ ์ฟผ๋ฆฌ์ ๊ฐํจ
- ๋น์ทํ ์ฟผ๋ฆฌ๋ ๋จ๋ฐํ๊ฒ ๋๋ ๋จ์
- ํ๋ก๊ทธ๋จ ์ฝ๋์ sql์ฟผ๋ฆฌ์ ๋ถ๋ฆฌ๋ก ์ฝ๋์ ๊ฐ๊ฒฐ์ฑ ๋ฐ ์ ์ง๋ณด์์ฑ ํฅ์
- resultType, resultClass๋ฑ Vo๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์กฐํ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉ์ ์ ์ DTO, MAP ๋ฑ์ผ๋ก ๋งตํํ์ฌ ์ฌ์ฉ ํ ์ ์๋ค
- ๋น ๋ฅธ ๊ฐ๋ฐ์ด ๊ฐ๋ฅํ์ฌ ์์ฐ์ฑ์ด ํฅ์๋๋ค
- SQL์คํ ๊ฒฐ๊ณผ๋ฅผ ์๋ฐ ๋น์ฆ ๋๋ Map๊ฐ์ฒด์ ๋งคํํด์ฃผ๋ Persistence ์๋ฃจ์ ์ผ๋ก ๊ด๋ฆฌํ๋ค. SQL์ ์์ค ์ฝ๋๊ฐ ์๋ XML๋ก ๋ถ๋ฆฌํ๋ค
- SQL๋ฌธ๊ณผ ํ๋ก๊ทธ๋๋ฐ ์ฝ๋๋ฅผ ๋ถ๋ฆฌํด์ ๊ตฌํํ๋ค
- ๋ฐ์ดํฐ ์์ค ๊ธฐ๋ฅ๊ณผ ํธ๋์ญ์ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค
MyBatis ์ฅ์
- ์ ๊ทผ์ด ์ฝ๊ณ ์ฝ๋๊ฐ ๊ฐ๊ฒฐ
- SQL๋ฌธ๊ณผ ํ๋ก๊ทธ๋๋ฐ ์ฝ๋๊ฐ ๋ถ๋ฆฌ๋์ด ์์ด์ SQL๋ฌธ์ ๋ณ๊ฒฝ์ด ์์๋๋ง๋ค ์๋ฐ ์ฝ๋๋ฅผ ์์ ํ๊ฑฐ๋ ์ปดํ์ผ ํ์ง ์์๋ ๋๋ค.
- ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค
MyBatis๋จ์
- ์คํค๋ง ๋ณ๊ฒฝ์ SQL์ฟผ๋ฆฌ๋ฅผ ์ง์ ์์ ํด์ฃผ์ด์ผ ํ๋ค
- ๋ฐ๋ณต๋ ์ฟผ๋ฆฌ๊ฐ ๋ฐ์ํ์ฌ ๋ฐ๋ณต ์์ ์ด ์๋ค.
- ์ฟผ๋ฆฌ๋ฅผ ์ง์ ์์ฑํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ข ์๋ ์ฟผ๋ฆฌ๋ฌธ์ด ๋ฐ์ํ ์ ์๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณ๊ฒฝ์ ๋ก์ง๋ ํจ๊ป ์์ ํด์ฃผ์ด์ผ ํ๋ค
์ฐ๋๋ฒ
- Mapper.xml์ sql๋ฌธ์ ๋ฑ๋กํ๋ค.
- @Autowired private SqlSession sqlSession;
- public StudentVO read(String id) throws Exception StudentVO vo = sqlSession.selectOne(namespace+โ.selectByidโ, id); return vo;