โค๏ธโ๐ฅMyBatis ๊ฐ์
MyBatis
- SQL๊ณผ ์๋ฐ ๊ฐ์ฒด๋ฅผ ๋งคํํ๋ ์ฌ์์์ ๊ฐ๋ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทผ์ฉ ํ๋ ์์ํฌ
MyBatis ์ฅ์
- SQL์ ์ฒด๊ณ์ ์ธ ๊ด๋ฆฌ
โ ์๋ฐ Mapper ์ธํฐํ์ด์ค๋ฅผ ํตํด SQL ์ค์ ํ์ผ๊ณผ ์ฐ๋
โ ๋น์ฆ๋์ค ๋ก์ง์์ Mapper ์ธํฐํ์ด์ค๋ฅผ ํตํด SQL๋ฌธ ์คํ
- ์๋ฐ ๊ฐ์ฒด์ SQL ์
์ถ๋ ฅ ๊ฐ์ ๋ฐ์ธ๋ฉ
- ๋์ SQL ์กฐํฉ
์ฃผ์ ์ปดํฌ๋ํธ
- MyBatis ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ์คํ๋ง ํ๋ ์์ํฌ ์ฐ๋์ ์ํ MyBatis-Spring ๋ผ์ด๋ธ๋ฌ๋ฆฌ
MyBatis ์ฃผ์ ์ปดํฌ๋ํธ
- MyBatis ์ค์ ํ์ผ
- SqlSessionFactoryBuilder : MyBatis ์ค์ ํ์ผ์ ๋ฐํ์ผ๋ก SqlSessionFactory ์์ฑ
- SqlSessionFactory : SqlSession ์์ฑ์ ์ํ ์ปดํฌ๋ํธ
- SqlSession : SQL ๋ฐํ๊ณผ ํธ๋์ญ์
๊ด๋ฆฌ
- Mapper Interface : ๋งคํ ํ์ผ๊ณผ SQL์ ๋์ํ๋ ์๋ฐ ์ธํฐํ์ด์ค
- ๋งคํ ํ์ผ : SQL๊ณผ OR๋งคํ์ XML์ ํ์ผ ๊ธฐ์
myBatis - Spring ์ฃผ์ ์ปดํฌ๋ํธ
- org.mybatis.spring.SqlSessionTemplate : sqlSession ์ธํฐํ์ด์ค ๊ตฌํ
MyBatis์ ํต์ฌ API
- sqlSession ์ธํฐํ์ด์ค
sqlSession์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
- sqlSession ๊ฐ์ฒด๋ฅผ DAO ๊ฐ์ฒด์ ์์กด๊ด๊ณ ์ฃผ์
์ผ๋ก ์ฌ์ฉ
- DAO ์ญํ ์ Mapper ๊ฐ์ฒด๋ฅผ ํตํด ๊ธฐ๋ฅ ์ ๊ณต
โ mybatis๋ DAO์ ๊ตฌํ์ ์๋์ผ๋ก ์์ฑํด์ฃผ๋ Mapper๋ผ๋ ๊ธฐ๋ฅ ์ ๊ณต
โ ๊ฐ๋ฐ์๊ฐ Mapperr ์ธํฐํ์ด์ค๋ฅผ ์ค๋นํด์ Mapper ๊ฐ์ฒด๋ฅผ ์์ฑํ๋๋ก ๋น ์ ์
์คํ๋ง๊ณผ MyBatis ๋ชจ๋๊ณผ์ ์์กด ๊ด๊ณ
- sqlSession ๊ฐ์ฒด๋ฅผ DAO ๊ฐ์ฒด์ ์์กด๊ด๊ณ ์ฃผ์
- MyBatis์ SqlSession ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ SqlSessionTemplate ๊ฐ์ฒด
MyBatis ์ฐ๋์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- spring-jdbc : ์คํ๋ง์ด ์ ๊ณตํ๋ JDBC ๋ชจ๋
- MyBatis-Spring : ๋ง์ด๋ฐํฐ์ค๊ฐ ์ ๊ณตํ๋ ํ๋ ์์ํฌ ๊ฐ์ ์ฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- MyBatis : ๋ง์ด๋ฐํฐ์ค ํ๋ ์์ํฌ ๋ชจ๋
- commons-dbcp : ์ปค๋ฅ์
ํ ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- mysql-connector-java : ์ฌ์ฉํ ๋ฐ์ดํฐ๋ฒ ์ด์ค JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ