MyBatis - accidentlywoo/legacyVue GitHub Wiki

MyBatis


์†Œ๊ฐœ

๊ฐœ๋ฐœ์ž๊ฐ€ ์ง€์ •ํ•œ SQL, ์ €์žฅํ”„๋กœ์‹œ์ € ๊ทธ๋ฆฌ๊ณ  ๋ช‡๊ฐ€์ง€ ๊ณ ๊ธ‰ ๋งคํ•‘์„ ์ง€์›ํ•˜๋Š” ํผ์‹œ์Šคํ„ด์Šค ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค๋Š” JDBC๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์ƒ๋‹น๋ถ€๋ถ„์˜ ์ฝ”๋“œ์™€ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ • ๋ฐ ๊ฒฐ๊ณผ ๋งค์นญ์„ ๋Œ€์‹ ํ•ด์ค€๋‹ค. ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ ˆ์ฝ”๋“œ์— ์›์‹œํƒ€์ž…๊ณผ Map ์ธํ„ฐํŽ˜์ด์Šค ๊ทธ๋ฆฌ๊ณ  ์ž๋ฐ” POJO๋ฅผ ์„ค์ •ํ•ด์„œ ๋งคํ•‘ํ•˜๊ธฐ ์œ„ํ•ด XML๊ณผ ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ

  • XML์—์„œ SqlSessionFactory ๋นŒ๋“œํ•˜๊ธฐ ๋ชจ๋“  ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ SqlSessionFactory ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. SqlSessionFactory์ธ์Šคํ„ด์Šค๋Š” SqlSessionFactoryBuilder๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. SqlSessionFactoryBuilder๋Š” XML ์„ค์ •ํŒŒ์ผ์—์„œ SqlSessionFactory์ธ์Šคํ„ด์Šค๋ฅผ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค. XML ํŒŒ์ผ์—์„œ SqlSessionFactory์ธ์Šคํ„ด์Šค๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๋‹ค.์„ค์ •์„ ์œ„ํ•ด ํด๋ž˜์ŠคํŒจ์Šค ์ž์›์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•˜๋‚˜ ํŒŒ์ผ ๊ฒฝ๋กœ๋‚˜ file://URL๋กœ ๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด์ง„ InputStream ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค๋Š” ํด๋ž˜์ŠคํŒจ์Šค์™€ ๋‹ค๋ฅธ ์œ„์น˜์—์„œ ์ž์›์„ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ข€๋” ์‰ฝ๊ฒŒ ํ•ด์ฃผ๋Š” Resources๋ผ๋Š” ์œ ํ‹ธ์„ฑ ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);