[java] MyBatis와 Spring의 통합 방법

MyBatis와 Spring을 통합하여 사용하는 방법에 대해 알아보겠습니다.

1. MyBatis와 Spring 프로젝트 설정

먼저, Maven이나 Gradle과 같은 의존성 관리 도구를 사용하여 MyBatis와 Spring의 의존성을 프로젝트에 추가합니다.

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.3.9</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.7</version>
</dependency>

2. 데이터베이스 설정

Spring 프로젝트의 applicationContext.xml 파일에서 데이터베이스 연결을 설정합니다.

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/mydatabase" />
    <property name="username" value="username" />
    <property name="password" value="password" />
</bean>

3. MyBatis 설정

MyBatis의 SqlSessionFactoryBeanSqlSessionTemplate을 Spring 프로젝트에서 설정합니다.

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="mapperLocations" value="classpath:mybatis/mapper/*.xml" />
</bean>

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
    <constructor-arg ref="sqlSessionFactory" />
</bean>

4. DAO 및 서비스 구현

MyBatis와 Spring을 통합하여 DAO(Data Access Object) 및 Service 클래스를 구현합니다.

@Repository
public class UserDAO {
    @Autowired
    private SqlSession sqlSession;

    public User getUserById(int userId){
        return sqlSession.selectOne("UserMapper.getUserById", userId);
    }
}

@Service
public class UserService {
    @Autowired
    private UserDAO userDAO;

    public User getUserById(int userId){
        return userDAO.getUserById(userId);
    }
}

5. 설정 검증

Spring을 시작하여 MyBatis와의 통합이 올바르게 동작하는지 확인합니다.

이제 MyBatis와 Spring을 통합하여 사용하는 방법에 대해 간략히 알아보았습니다. 이를 통해 데이터베이스와의 효과적인 상호작용을 위한 환경을 구축할 수 있습니다.

위 내용은 MyBatis 3.5.7과 Spring 5.3.9를 기준으로 작성되었습니다.

참고 자료: MyBatis 공식 문서, Spring 공식 문서