MyBatis(iBatis)
๋ง์ด๋ฐํฐ์ค๋ ๊ฐ๋ฐ์๊ฐ ์ง์ ํ SQL, ์ ์ฅํ๋ก์์ ๊ทธ๋ฆฌ๊ณ ๋ช๊ฐ์ง ๊ณ ๊ธ ๋งคํ์ ์ง์ํ๋ ํผ์์คํด์ค ํ๋ ์์ํฌ
JDBC๋ก ์ฒ๋ฆฌํ๋ ์๋น๋ถ๋ถ์ ์ฝ๋์ ํ๋ผ๋ฏธํฐ ์ค์ ๋ฐ ๊ฒฐ๊ณผ ๋งคํ์ ๋์ ํด์ค๋ค.
DB ๋ ์ฝ๋์ ์์ํ์ ๊ณผ Map ์ธํฐํ์ด์ค, ์๋ฐ POJO๋ฅผ ์ค์ ํด์ ๋งคํํ๊ธฐ ์ํด XML๊ณผ ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉ
DB/SQL ๊ด๋ จ ๋์์ ์ฝ๊ฒ ์ฒ๋ฆฌํด์ฃผ๋ ํ๋ ์์ํฌ = SQL Mapper ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- DB์ฐ๊ฒฐ, Try-Catch-finally ๊ตฌ๋ฌธ, pstmt, rs ๊ตฌ๋ฌธ์ ํจ์ฌ ๊ฐ๊ฒฐํ๊ฒ ์ฒ๋ฆฌ
- spring๊ณผ ์ฐ๋์ด ๋งค์ ํธํจ (MyBatis-spring ๋ผ์ด๋ธ๋ฌ๋ฆฌ)
- ๋์ sql ๊ตฌ๋ฌธ ์ฌ์ฉ ๊ฐ๋ฅ(= ์ฝ๋ ์ ์ด)
*MyBatis ์ฌ์ฉ๋ฐฉ์
1. XML๋ง ์ฌ์ฉํ์ฌ SQL๊ตฌ๋ฌธ์ ์ฒ๋ฆฌ, DAO์์๋ XML์ฝ๋๋ฅผ ์ฐพ์์ ์คํํจ
์ฅ์ : SQL ์ฟผ๋ฆฌ ์์ ๋ฐ ์ ์ง๋ณด์๊ฐ ํธํจ
๋จ์ : ๊ฐ๋ฐ ๋ถ๋์ด ์ฆ๊ฐ, ๋ณต์ก๋ ์ฆ๊ฐ
2. ์ด๋ ธํ ์ด์ & ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ SQL๊ตฌ๋ฌธ ์ฌ์ฉ
์ฅ์ : DAO๊ฐ์ฒด ์์ด๋ ๊ฐ๋ฐ ๊ฐ๋ฅ, ์์ฐ์ฑ ์ฆ๊ฐ
๋จ์ : SQL ์ ๋ํ ์ด์ ์ผ๋ก ์์ฑํ๊ธฐ ๋๋ฌธ์ ์์ ํ ๋ ๋ง๋ค ๋งค๋ฒ ์ปดํ์ผ์ ํด์ผํจ
3. ์ธํฐํ์ด์ค + XML ๋ชจ๋ ํ์ฉ
์ฅ์ : ๊ฐ๋จํ ๊ตฌ๋ฌธ์ ์ ๋ ธํ ์ด์ , ๋ณต์กํ ๊ตฌ๋ฌธ์ XML์ฝ๋๋ก ํํํจ
๋จ์ : ๊ฐ๋ฐ์์ ๋ฐ๋ผ ๊ฐ๋จ/๋ณต์ก์ ๊ธฐ์ค์ด ๋ค๋ฆ
1. ๊ธฐ๋ณธ์ค์ pom.xml
: MVNREPOSITORY ์์ Mysql connector, myBatis, myBatisSpring, spring-jdbc, spring test-context framework ๋ค์ด
2. Maven ์ ๋ฐ์ดํธ
3. root-context.xml์ค์
- DataSource ๊ฐ์ฒด
DataSource ๊ฐ์ฒด๋ DB์ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ์ง์นญํ๋ ํฌ๊ด์ ์ธ ๊ฐ๋ ์ผ๋ก JDBC 2.0 ํ์ค์ ํ์ฅ API๋ก ์ฒ์ ์๊ฐ๋์์
=JDBC๋ฅผ ์ด์ฉํด DB์ ์ฐ๊ฒฐ ํด์ฃผ๋ ๊ฐ์ฒด!
* DataSource ๊ฐ์ฒด ๊ด๋ จ ๋ด์ฉ
** ์ฐ๊ฒฐ๋๋์ง ํ์ธํ๊ธฐ!
src/main/resource์ mybatis-config.xml ํ์ผ ์์ฑ > dtd ์ถ๊ฐ!
- sqlSessionFactory ๊ฐ์ฒด ์์ฑ
: DB์ฐ๊ฒฐ, mybatis ์ค์ , mapper ์ฐ๊ฒฐ ํด์ฃผ๋ ๊ฐ์ฒด
4. Mybatis ์ฐ๊ฒฐ๋๋์ง ํ ์คํธํ๊ธฐ
*datasource๊ฐ์ฒด, sqlsessionFactory ๊ฐ์ฒด ์์ฑ
* ๋ง์ด๋ฐํฐ์ค ์ฐ๊ฒฐ ํ ์คํธ
* ๋ง์ด๋ฐํฐ์ค ์ฐ๊ฒฐ ์ฒดํฌ
> @test ์ด๋ ธํ ์ด์ ๊ผญ ๋ถ์ด๊ธฐ!!
5. Mapper ๋ง๋ค๊ธฐ
- scr/main/resource ๋ฐ์ mapper ํด๋ ์์ฑ > memberMapper.xml ์์ฑ
- dtd ๊ฐ์ ธ์ค๊ธฐ
- mapper namespace ์์ฑ > ๋ด๊ฐ ๋ง๋ ์ด๋ฆ : ์ธ๋ถ์์ ํธ์ถํ ๋ ์ฌ์ฉ
- ์ง๊ธ ์๊ฐ์ ๊ฐ์ ธ์ค๋ sql ์์ฑ
6. ์ด mapper๋ฅผ ์ธ์ํ ์ ์๊ฒ root-context.xml์์ ๊ฒฝ๋ก ์ค์
7. sqlSessionTemplate ๊ฐ์ฒด ์์ฑ
8. ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์์ฑ
9. ํ ์ด๋ธ ์์ฑ & ์ค์
10. ๋๋ฉ์ธ ๊ฐ์ฒด ์ค๊ณ, ํด๋์ค ์์ฑ(MemberVO) & getter,setter ์์ฑ
11. root-context.xml์ persistence ํจํค์ง ์ถ๊ฐ
12. DAO์ธํฐํ์ด์ค ์์ฑ(MemberDAO) & ์ธํฐํ์ด์ค ์์ ๋ด๊ฐ ํ์ํ ๋์ ๊ตฌํ(์ถ์๋ฉ์๋๋ก)
13. DAO๊ฐ์ฒด ์์ฑ(/SpringMVC/src/main/java/com/itwillbs/persistence/MemberDAOImpl.java)
=>memberDAO๋ฅผ ์ํ๋ฆฌ๋จผ์ธ ํ์
@repository ํ๋ฉด ์์ Sํ์
14. ์ํ๋ฆฌ๋จผ์ธ ์ ๋๋น์ฐ๊ฒฐ์ ๋ณด๊ฐ ํ์ํจ => ์์กด์ฃผ์
- ์ฟผ๋ฆฌ ๊ตฌ๋ฌธ ๊ฐ์ ธ์ค๊ธฐ
- mapper ์ฃผ์๊ฐ ์ ์ฅ
- ๊ฒฐ๊ณผ ๊ฐ ์ ์ฅ
15. ํ ์คํธํ๊ธฐ
์๋ฌ...
>>>root-context์์๋ mappers๋ก ์์ฑํด๋จ๋๋ฐ
์ค์ ํด๋๋ช ์ mapper๋ก ํด๋จ์์....
๋ค์ ํ ์คํธํ๋ฉด ์ ์์ ์ผ๋ก ์๋ํจ
'STUDY > SPRING' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
spring - ํ์๊ฐ์ (MyBatis - DB์ฐ๊ฒฐ ์ฐ์ต) (0) | 2022.06.09 |
---|---|
spring ========Mybatis๋ก DAO์ DB๋ฅผ ์ฐ๊ฒฐ ======= (0) | 2022.06.08 |
Spring - Legacy Project ๋ง๋ค๊ธฐ (0) | 2022.06.07 |
Spring ๊ธฐ์ด ๊ด๊ณ (0) | 2022.06.07 |
spring ์ค์นํ๊ธฐ (0) | 2022.06.03 |