Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 유닉스
- JVM
- oracle
- 고전역학
- spring integration
- 시스템
- 역학
- flet
- 파이썬
- Database
- 자바암호
- kotlin
- GPT-4's answer
- python
- Java
- 리눅스
- 소프트웨어공학
- android
- 자바
- write by GPT-4
- write by chatGPT
- 웹 크롤링
- chatGPT's answer
- 인프라
- jpa
- NIO
- spring data jpa
- 자바네트워크
- 데이터베이스
- 코틀린
Archives
- Today
- Total
기억을 지배하는 기록
MyBatis 연동하기 본문
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 애플리케이션 시작 시 DatabaseInitializer
의 run
메서드를 실행하고, 이름이 "John Doe"인 사용자를 검색하여 출력합니다.
이렇게 MyBatis를 이용하면 SQL 쿼리를 직접 작성하면서도, SQL과 Java 코드를 깔끔하게 분리할 수 있습니다. 또한 XML 파일을 사용하여 쿼리를 정의하면 좀 더 복잡한 쿼리와 동적 쿼리를 다루기에도 유용합니다.
728x90
'Kotlin for Beginners' 카테고리의 다른 글
자바에서 코틀린으로 변환 가이드 (0) | 2023.06.09 |
---|---|
Kotlin과 다른 언어 비교 (0) | 2023.06.02 |
JPA 연동하기 (0) | 2023.06.02 |
데이터베이스 연동하기 (0) | 2023.06.02 |
웹 서버 개발을 위한 Ktor 또는 Spring Boot (0) | 2023.06.02 |
Comments