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
1.1k
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
KotlinConf 2025で発表された言語のアップデートと現地参加レポート
n_takehata
1
55
KotlinConf 2025 現地で感じたServer-Side Kotlin
n_takehata
2
280
KotlinConf 2025 現地参加の土産話
n_takehata
0
120
組織貢献をするフリーランスエンジニアという生き方
n_takehata
2
4k
「2024年版 Kotlin サーバーサイドプログラミング実践開発」の補講 〜O/Rマッパー編〜
n_takehata
2
710
2024年版 Kotlin サーバーサイドプログラミング実践開発
n_takehata
7
6.1k
Server-Side目線で見る、Kotlin Festの楽しみ方
n_takehata
0
490
KotlinとCloud Vision APIで領収書の電子帳簿保存法対応をする
n_takehata
1
1.6k
KotlinConf 2023 現地参加レポート
n_takehata
1
360
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
223
9.9k
Practical Orchestrator
shlominoach
190
11k
Embracing the Ebb and Flow
colly
86
4.8k
The Language of Interfaces
destraynor
158
25k
The World Runs on Bad Software
bkeepers
PRO
70
11k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
The Pragmatic Product Professional
lauravandoore
36
6.8k
Art, The Web, and Tiny UX
lynnandtonic
301
21k
A Tale of Four Properties
chriscoyier
160
23k
Documentation Writing (for coders)
carmenintech
73
5k
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)) }
}
ここからはライブコーディングで説明します