Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MyBatis Dynamic SQLの Kotlinサポートを使う
Search
Takehata Naoto
December 09, 2020
0
910
MyBatis Dynamic SQLの Kotlinサポートを使う
2020年12月9日(水) 「集まれKotlin好き!Kolint愛好会 vol.26 @オンライン」の談義資料です。
Takehata Naoto
December 09, 2020
Tweet
Share
More Decks by Takehata Naoto
See All by Takehata Naoto
「2024年版 Kotlin サーバーサイドプログラミング実践開発」の補講 〜O/Rマッパー編〜
n_takehata
2
550
2024年版 Kotlin サーバーサイドプログラミング実践開発
n_takehata
6
4.6k
Server-Side目線で見る、Kotlin Festの楽しみ方
n_takehata
0
380
KotlinとCloud Vision APIで領収書の電子帳簿保存法対応をする
n_takehata
1
680
KotlinConf 2023 現地参加レポート
n_takehata
1
320
サーバーサイドKotlinクイズ
n_takehata
0
180
サーバーサイドでのKotlin Coroutines
n_takehata
0
1.1k
KotlessとDynamoDBで自分のツイートを収集するサーバーレスアプリケーションを作る
n_takehata
0
380
書籍『Kotlin サーバーサイドプログラミング実践開発』のこだわりとおすすめポイント
n_takehata
0
520
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
30
2.1k
Docker and Python
trallard
43
3.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
KATA
mclloyd
29
14k
Six Lessons from altMBA
skipperchong
27
3.6k
Statistics for Hackers
jakevdp
797
220k
How STYLIGHT went responsive
nonsquared
96
5.3k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
Git: the NoSQL Database
bkeepers
PRO
427
64k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
113
50k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Transcript
MyBatis Dynamic SQLの Kotlinサポートを使う 2020年12月9日 Kotlin愛好会 vol.26 竹端 尚人
自己紹介
概要 竹端 尚人 Twitter: @n_takehata • サーバーサイドKotlin • (少し前まで)スマートフォンゲーム開発 •
今月からフリーランス
登壇、執筆 • CEDEC 2018登壇 • CEDEC 2019登壇 • Software Design
2019年2月号〜4月号で短期連載 「サーバーサイド開発の品質を向上させる Java→Kotlin 移行のススメ」執筆
本日の内容
MyBatis Dynamic SQLのKotlinでの使い方を ライブコーディングで説明します
MyBatisとは?
• JavaのポピュラーなO/Rマッパーの一つ • もともとXMLにSQLを記述し、インターフェースとマッピング する方式 • XMLやInterface、Modelクラスなどのボイラープレートを生 成するGeneratorがある Java製のO/Rマッパー
XMLの例(抜粋) <insert id="insertSelective" parameterType="love.kotlin.server.crud.database.User" > insert into user <trim prefix="("
suffix=")" suffixOverrides=","> <if test="id != null"> id, </if> <if test="name != null"> name, </if> <if test="age != null"> age,
インターフェースの例(抜粋) @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);
MyBatis Dynamyc SQL
• コード上でSQLを構築できる • こちらもGeneratorによる自動生成に対応 • Kotlinでのコードも生成可能に MyBatisで動的SQL生成のスタック
fun findAll(): List<User> { return userMapper.select { where(id, isEqualTo(1)) }
}
ここからはライブコーディングで説明します