Akashic Records

MyBatis 연동하기 본문

Kotlin for Beginners

MyBatis 연동하기

Andrew's Akashic Records 2023. 6. 2. 11:20
728x90

MyBatis는 Java에서 SQL 쿼리와 프로시저를 XML 형식이나 애노테이션 형식으로 쉽게 관리할 수 있도록 도와주는 SQL 매핑 프레임워크입니다. 데이터베이스 접근에 관한 복잡성을 캡슐화하며, Java 코드와 SQL 쿼리의 분리를 가능하게 합니다.

 

Spring Boot와 함께 MyBatis를 사용하려면, 먼저 MyBatis의 Spring Boot Starter 의존성을 추가해야 합니다.

 

Gradle을 사용하는 경우, build.gradle.kts 파일에 다음 항목을 추가합니다:

implementation("org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0")
implementation("com.h2database:h2")

 

이제 인터페이스를 생성하여 SQL 쿼리를 정의합니다. MyBatis의 @Mapper 애노테이션을 사용하여 이를 MyBatis 매퍼로 표시합니다:

import org.apache.ibatis.annotations.Mapper
import org.apache.ibatis.annotations.Select

@Mapper
interface UserMapper {
@Select("SELECT * FROM users WHERE name = #{name}")
fun findByName(name: String): List<User>
}

 

여기서 User 클래스는 다음과 같이 정의할 수 있습니다:

data class User(
var id: Long? = null,
var name: String,
var email: String
)

 

그리고 이제 UserMapper를 사용하여 데이터베이스에 접근하는 예시입니다:

import org.springframework.boot.CommandLineRunner
import org.springframework.stereotype.Component

@Component
class DatabaseInitializer(private val userMapper: UserMapper) : CommandLineRunner {
override fun run(vararg args: String?) {
    val users = userMapper.findByName("John Doe")
    users.forEach { println("Found user: $it") }
}
}

위의 코드는 Spring Boot 애플리케이션 시작 시 DatabaseInitializerrun 메서드를 실행하고, 이름이 "John Doe"인 사용자를 검색하여 출력합니다.

 

이렇게 MyBatis를 이용하면 SQL 쿼리를 직접 작성하면서도, SQL과 Java 코드를 깔끔하게 분리할 수 있습니다. 또한 XML 파일을 사용하여 쿼리를 정의하면 좀 더 복잡한 쿼리와 동적 쿼리를 다루기에도 유용합니다.

728x90
Comments