Ktor Framework에서 DB 연동해볼게요.
이런 저런 샘플 예제들이 있는데 복잡하더라구요.
아래 코드가 기반이며 이를 바탕으로 확장한 된 것이라 보시면 되요.
DatabaseConnection.kt
DB 설정 부분이에요.
import org.ktorm.database.Database
object DatabaseConnection {
val database: Database =
Database.connect(
url = "jdbc:mysql://localhost:3306/demo",
driver = "com.mysql.cj.jdbc.Driver",
user = "root",
password = "1234",
)
}
Member.kt
스키마를 작성해줍니다.
import org.ktorm.entity.Entity
import org.ktorm.schema.Table
import org.ktorm.schema.int
import org.ktorm.schema.varchar
object MemberTable : Table<Member>("member") {
val id = int("id").primaryKey().bindTo { it.id }
val loginId = varchar("login_id").bindTo { it.loginId }
val name = varchar("name").bindTo { it.name }
val password = varchar("password").bindTo { it.password }
}
interface Member : Entity<Member> {
companion object : Entity.Factory<Member>()
val id: Int
val loginId: String
val name: String
val password: String
}
MemberRepository.kt
Repository 클래스에서 member 테이블에 접근할 수 있는 API들을 관리할거에요.
Ktorm에서 제공해주는 Entity Sequence APIs를 사용해봤어요. (SQL DSL 방식도 있고, ORM 방식도 있어요.)
import org.ktorm.entity.sequenceOf
import org.ktorm.entity.toList
class MemberRepository {
private val database = DatabaseConnection.database
fun findAll(): List<Member> {
return database.sequenceOf(MemberTable).toList()
}
}
database 객체를 사용하여 이제 본격적으로 개발하시면 되는데요.
사용 방법은 공식 문서 확인해 보시는 것을 추천드립니다.
'Backend > Kotlin' 카테고리의 다른 글
Kotlin 랜덤 숫자 000000~999999 (0) | 2022.04.17 |
---|---|
Ktor Install Gson (0) | 2021.11.16 |
Ktor Application 빌드 오류 시 (Shadow Plugin) (0) | 2021.11.12 |
Ktor Framework 프로젝트 생성 (0) | 2021.11.12 |