Categories
Algorithm๐งฉ
๋ฐฑ์ค ๐
BookReview๐
CleanCodeโจ
Network ๐จ
Database ๐
DevOpsโ๏ธ
์๋ฌ ์ผ๊ธฐ๐
Etc๐ฌ
Fishy Fish ๐ฃ
Spring๐ฑ
MyBatis
MyBatis
SQL๊ณผ ์๋ฐ ๊ฐ์ฒด๋ฅผ ๋งคํํ๋ ์ฌ์์์ ๊ฐ๋ฐ๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ ๊ทผ์ฉ ํ๋ ์์ํฌ
- SQL์ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋๋ก ํจ
- ์๋ฐ ๊ฐ์ฒด์ SQL ์ ์ถ๋ ฅ ๊ฐ์ ๋ฐ์ธ๋ฉ
์ฃผ์ ์ปดํฌ๋ํธ
- MyBatis ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- MyBatis ์ค์ ํ์ผ
- SqlSessionFactoryBuilder : MyBatis ์ค์ ํ์ผ์ ๋ฐํ์ผ๋ก SqlSessionFactory ์์ฑ
- SqlSessionFactory : sqlSession ์์ฑ์ ์ํ ์ปดํฌ๋ํธ
- SqlSession : SQL ๋ฐํ๊ณผ ํธ๋์ญ์ ๊ด๋ฆฌ
- Mapper ์ธํฐํ์ด์ค : ๋งคํ ํ์ผ๊ณผ SQL์ ๋์ํ๋ ์๋ฐ ์ธํฐํ์ด์ค
- ๋งคํ ํ์ผ : SQL๊ณผ OR ๋งคํ์ XML์ ํ์ผ ๊ธฐ์
- MyBatis-Spring ๋ผ์ด๋ธ๋ฌ๋ฆฌ: ์คํ๋ง ํ๋ ์์ํฌ์ ์ฐ๋
- org.mybatis.spring.SqlSessionTemplate : sqlSession ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํ
ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- spring-jdbc : ์คํ๋ง์ด ์ ๊ณตํ๋ JDBC ๋ํ ๋ชจ๋
- MyBatis-Spring : ๋ง์ด๋ฐํฐ์ค๊ฐ ์ ๊ณตํ๋ ํ๋ ์์ํฌ ๊ฐ์ ์ฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- MyBatis : ๋ง์ด๋ฐํฐ์ค ํ๋ ์์ํฌ ๋ชจ๋
- ์ปค๋ฅ์ ํ ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ : commons-dbcp
- ์ฌ์ฉํ ๋ฐ์ดํฐ๋ฒ ์ด์ค JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ : mysql-connector-java
์ฐ๋ ์ค์ - ์์กด ๊ด๊ณ ์ค์
- ์ปค๋ฅ์ ํ์ ์ง์ํ๋ ๋ฐ์ดํฐ ์์ค ๋น ๋ฑ๋ก
- ์คํ๋ง์ ํธ๋์ญ์ ๊ด๋ฆฌ์์ ๋น ๋ฑ๋ก
- MyBatis์ SqlSessopmFactory ๋น ๋ฑ๋ก
- MyBatis-Spring์ SqlSessionTemplate ๋น ๋ฑ๋ก
MyBatis ์ฐ๋ ์ค์
- ๋น ๋ฑ๋ก ๋น ์์กด ๊ด๊ณ ์ค์
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/springdb?
allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=utf8&
useSSL=false&serverTimezone=UTC" />
<property name="username" value="spring" />
<property name="password" value="passwd" />
<property name="maxActive" value="5" />
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:/mybatis-config.xml"></property>
<property name="mapperLocations" value="classpath:mappers/*Mapper.xml"></property>
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
</bean>
- mapper.xml ์์ฑ
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:/mybatis-config.xml"></property>
<property name="mapperLocations" value="classpath:mappers/*Mapper.xml"></property>
</bean>
- mybatis-config.xml ์ค์
- MyBatis์ ๊ณตํต์ ์ธ ์ค์ ์ ์ง์ ํ๋ XML ํ์ผ
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<package name="org.tukorea.myweb.domain" />
</typeAliases>
</configuration>