$30 off During Our Annual Pro Sale. View Details »

MyBatis Dynamic SQLの Kotlinサポートを使う

Takehata Naoto
December 09, 2020
720

MyBatis Dynamic SQLの Kotlinサポートを使う

2020年12月9日(水) 「集まれKotlin好き!Kolint愛好会 vol.26 @オンライン」の談義資料です。

Takehata Naoto

December 09, 2020
Tweet

More Decks by Takehata Naoto

Transcript

  1. MyBatis Dynamic SQLの
    Kotlinサポートを使う
    2020年12月9日 Kotlin愛好会 vol.26
    竹端 尚人

    View Slide

  2. 自己紹介

    View Slide

  3. 概要
    竹端 尚人
    Twitter: @n_takehata
    ● サーバーサイドKotlin
    ● (少し前まで)スマートフォンゲーム開発
    ● 今月からフリーランス

    View Slide

  4. 登壇、執筆
    ● CEDEC 2018登壇
    ● CEDEC 2019登壇
    ● Software Design 2019年2月号〜4月号で短期連載
    「サーバーサイド開発の品質を向上させる Java→Kotlin
    移行のススメ」執筆

    View Slide

  5. 本日の内容

    View Slide

  6. MyBatis Dynamic SQLのKotlinでの使い方を
    ライブコーディングで説明します

    View Slide

  7. MyBatisとは?

    View Slide

  8. ● JavaのポピュラーなO/Rマッパーの一つ
    ● もともとXMLにSQLを記述し、インターフェースとマッピング
    する方式
    ● XMLやInterface、Modelクラスなどのボイラープレートを生
    成するGeneratorがある
    Java製のO/Rマッパー

    View Slide

  9. XMLの例(抜粋)
    parameterType="love.kotlin.server.crud.database.User"
    >
    insert into user


    id,


    name,


    age,

    View Slide

  10. インターフェースの例(抜粋)
    @Insert({
    "insert into user (id, name, "
    ,
    "age)",
    "values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, "
    ,
    "#{age,jdbcType=INTEGER})"
    })
    int insert(User record);
    int insertSelective(User record);

    View Slide

  11. MyBatis Dynamyc SQL

    View Slide

  12. ● コード上でSQLを構築できる
    ● こちらもGeneratorによる自動生成に対応
    ● Kotlinでのコードも生成可能に
    MyBatisで動的SQL生成のスタック

    View Slide

  13. fun findAll(): List {
    return userMapper.select {
    where(id, isEqualTo(1))
    }
    }

    View Slide

  14. ここからはライブコーディングで説明します

    View Slide