Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

自己紹介

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

本日の内容

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

MyBatisとは?

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

XMLの例(抜粋) insert into user id, name, age,

Slide 10

Slide 10 text

インターフェースの例(抜粋) @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);

Slide 11

Slide 11 text

MyBatis Dynamyc SQL

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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