tokuhirom's Blog

mybatis の mapper を groovy で書くぐらいなら kotlin でも良いのではないか

mybatis の xml は painful なので、groovy で書く、というライフハックがあるようです。 これはとても良いハックなのですが、最近の情勢を考えると、groovy よりも kotlin で書いておいたほうが良いのかなという気がしなくもない。 kotlin の方が勢いがあり、IDEA のサポートも今後 kotlin のほうが受けやすそうですし。

というわけで、kotlin で書いてみるデモコードを書いてみました。

package com.example.dao

import com.example.entity.Blog
import org.apache.ibatis.annotations.Mapper
import org.apache.ibatis.annotations.Param
import org.apache.ibatis.annotations.Select

@Mapper
interface BlogDao {
    @Select("""
        SELECT * FROM blog
    """)
    fun findAll(): List<Blog>

    @Select("""
        SELECT * FROM blog WHERE id=#{id}
    """)
    fun findById(@Param("id") id: Long): Blog
}

メソッドの定義にやや癖があるものの、今後 kotlin を利用するケースが増えることを考えれば、許容範囲かなといったところ。

フルのサンプルコードはこちら: https://github.com/tokuhirom/java-samples/tree/master/spring-boot-mybatis-kotlin