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
いろいろ実践!サーバーサイドKotlin【サンプル】 / server_side_kotlin...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
FORTE
September 09, 2020
Technology
560
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
いろいろ実践!サーバーサイドKotlin【サンプル】 / server_side_kotlin_3_sample
FORTE
September 09, 2020
More Decks by FORTE
See All by FORTE
入門!実践!サーバーサイドKotlin〜2026春改訂版〜サンプル/sski2_sample
fortegp05
0
110
サーバーサイドKotlinやってみた!/ssk_meetup_18_01
fortegp05
1
40
Podcast配信で広がったアウトプットの輪~70人と音声発信してきた7年間~/outputconf_01
fortegp05
0
360
異夢同船〜異なる夢を持ちチームで作業する〜_サンプル/imudousen_sample
fortegp05
0
380
ラプラスの箱を開ける ~レトロゲームから学んだ工夫~/retro_games_any_03_01
fortegp05
1
98
ジモtechVol1_LT_フルリモート"され"力/jimotech_lt_1
fortegp05
0
78
超入門!サーバーサイドKotlin〜2026春更新版〜/sski1
fortegp05
0
550
MicronautでgRPCに入門!実践!サーバーサイドKotlin/sskm2_sample
fortegp05
0
110
アンチパターンから学ぶコミュニケーション/lcap_sample
fortegp05
0
210
Other Decks in Technology
See All in Technology
脱SaaS!FDEを支えるプロビジョニングと分離設計
knih
0
300
アラート調査向けAIエージェントの本番導入とその後/AI Agents for Alert Investigation: Production Deployment and After
taddy_919
1
240
作る力から、見極める力へ — AI時代に広がるエンジニアの価値と役割
rince
0
360
Fabricをフル活用する AI Agent Hub -製造業特化AIエージェントの設計
iotcomjpadmin
0
150
OTel × Datadog で 「AI活用」を計測し、改善に繋げる
shihochan
2
1k
起点・思考・出力で分解する 〜PM業務の自動化設計〜
kazu_kichi_67
2
1.1k
秘密度ラベル初心者が第1歩でつまづかないための「設計・運用」ポイント
seafay
PRO
1
500
ぼっちではじめた登壇が「51名」「241件」の発信に化けた
subroh0508
1
330
Multi-Agent並列開発を 安全に回すための技術 / Technology for Safely Multi-Agent Parallel Development
tooppoo
0
220
現場のトークンマネジメント
dak2
1
200
クラウドファンディング版StackChan 3体(4体)をインタラクティブな体験型作品にして展示もした話 / スタックチャンお誕生日会2026
you
PRO
0
210
「勝手に広まる」人気 AI エージェントを爆速で作ろう!(AWS Summit Japan 2026講演資料)
minorun365
PRO
10
2.6k
Featured
See All Featured
The Language of Interfaces
destraynor
162
27k
My Coaching Mixtape
mlcsv
0
160
Tell your own story through comics
letsgokoyo
1
980
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Thoughts on Productivity
jonyablonski
76
5.2k
Practical Orchestrator
shlominoach
191
11k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
210
Evolving SEO for Evolving Search Engines
ryanjones
0
230
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
640
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Transcript
ְְ㹋騧!؟٦غ٦؟؎س Kotlin Vol.1 FORTE խ衼 2020-09-12 晛 aozora Project 涪遤
כׄח ׆ס勓䩘מ⺅זיַגד׀לֵֹֿכַׇֹױն詇脢ס FORTEنؚ ٜطךն勓詇ך瑭ֿ剹ַגئ٭ف٭ئؕغ Kotlin ס䪫銉⻎☭霺ע 3 ⫖潨םסך ր㵅鴫!ئ٭ف٭ئؕغ Kotlinցبٛ٭ثכי砩ֿ♕ַג־םכ䘼זיַױն♀
㎇ע⯼㎇ױךכꇙַրץכחסؓوٛآ٭ب٘٤㴞䧯ױךցךעםׂր׆ ئ٭ف٭ئؕغ Kotlin ךמעלֹגַַסցמ瞩ֻ┞⫖כםזיַ ױն نٝ٭ّ٠٭ؠע SpringBoot ךס闋鞃כםזיַױն勓剹⯼詇ױךכ⻎ׂ WindowsյMac ╋㸐䗎ךն 劤衼ךⰻ㺁 ♀㎇עַַ㵅鴫!כַֹ׆כךյ⯼詇ױךꄼי瞉脢ֿ雧יײגַכ䘼ז יַג׆כ雧יײױגն⪽✄溷מע姌ס 3 חךն • SpringBoot סف٭ة٘٤ؓشو • JPA מط٭هٜ JOIN ס㕈狸 • نٜؒؕסؓشوٞ٭غ SpringBoot ךغ٦آّٝ،حف SpringBoot סف٭ة٘٤ؓشوע⯼詇㕂瞉יַ劄╚מ陧יֽյ鞅脢 ־ס鮐ゼֵזג⫐㵼ךגն㕂瞉脢כיעف٭ة٘٤םלס欎㘶ֿ㜟זי ױֹכ鞃僻יַג⫐㵼ךעⳛ✑םַםלסゼ꾴ֿ溪气ג״յכי꾁ס浌ַ ゼ꾴ךն ♀㎇עאס㸐⭦闋鞃׆כךյ阾ꃍֿ⺜ׂםזי㸐⭦ׂם׆כ 柬זיַױն 2
JPA ח״ذ٦ـٕ JOIN ך㛇燉 ⯼詇ױךע┞㎇ס亣✑ךץכחסط٭هٜמ㸐י־䔔꼸םַؓوٛآ٭ب٘ ٤剹ַי׀ױגն־յ┾ס╚מ⮂㎇זיַ㝂ׂסؓوٛآ٭ب٘٤עյ┞ ㎇ס亣✑ך鏿俙סط٭هٜמ㸐י䔔꼸塌茣䭥זגؓوٛآ٭ب٘٤ס ֹֿ㝂ַךֹն אסג״յ♀㎇ע鏿俙סط٭هٜ JOIN
י亣✑偙岺ס㕈狸闋鞃יַױ նⷃ栃סط٭هٜ嗱筺յ鏿겧םؓوٛآ٭ب٘٤ئ٭ف٭ئؕ غ Kotlin ך銨槁ך׀ֹמםױն ם ֽ յ勓 剹 ך 闋 鞃 碃 ㎪ ע@OneToOneյ@ManyToOneյ@OneToManyյ @ManyToMany מ SELECT דׄכםױն剳偆⯸ꯙյN+1 ゼ꾴מחַ יע䪒ַױ؆סךֵ־״ׇ◗䪩ׂדַն *1 ؿ؋؎ٕך،حفٗ٦س Web ؓوٛآ٭ب٘٤ךע蔦䉁銨槁ג״סؓفذ٭氺⦐յ霄ַ鞃僻 骅־ם銨槁ג״מ氺⦐ⳛ氺ؓشوٞ٭غױն⯼詇ױךעط؞تعס ⭦槏ע闋鞃י׀ױגֿյ׆סنٜؒؕؓشوٞ٭غמꫀ闋鞃עיַױ؆ ךגն ♀㎇עهٚؗا־ Web ئ٭ف٭מ⟛㲽偙岺סײ闋鞃ױֿյ♀䔿ب ٛ٭ثֿꅼ؆ד䫐מע Amazon S3 ♑סؠٚؗغؤ٤مٖ٭طؔ٤ءئ٭لتמ ؓشوٞ٭غꅙ䶏םל闋鞃גַכ脝ֻיַױն 橆㞮 勓剹⯼詇כ⻎ׂ WindowsյMac ╋㸐䗎ךնIDE ؙظؔذמחַי⻎ IntelliJ IDEAյVS Code ךסⳛ✑牞霼יַױֿյ杅מ䔔꼸砈䨾עם ַעםסך⯼詇鞅؆ךַףゼ꾴םַעךնםֽ׆׆ךַֹⳛ✑牞霼עյ Mac ס IntelliJ IDEA ך✑䧯גوٞةؘؠع Mac ס VS CodeյWindows ס IntelliJ IDEAյVS Code ךⳛ✑牞霼גס䟨⽱כםױն1 ־יס欎㘶 ך牞霼יַׄךעםַסךֵ־״ׇ◗䪩ׂדַն 勓詇ס⫐㵼ך⮔־םַ掾ֵֿף䔿ꃍ⯼詇锶יַגדׂ־յץ詇 脢*2 ױךׇ┞㖥ׂדַնيتعؙنؚ٭عך㎇瞩יַגד׀ױն *1 ♀㎇闋鞃םַ槏氮מחַיע睗 2 皹ס劄䔿סؤّٚ䕣镣ׂדַ *2 Twwiter https://twitter.com/FORTEgp05 3
וז➂ぢַֽ 勓詇עր㵅鴫!ئ٭ف٭ئؕغ Kotlinցبٛ٭ثס┞⫖潨ր⪜ꪎ!㵅鴫!ئ٭ف٭ئؕ غ Kotlinց鞅؆ךַ⯼䳀כיַױն⪽✄溷מע Kotlin + Spring Boot +
JPA + Thymeleaf + ظ٭ذي٭تh2 Database םלךظ٭ذ✑䧯յ嗱筺յ剳 偆յ⯸ꯙַ CRUD ⭦槏ֿ⮔־յזג׆כֵֿյꪛ溪欎㘶םל ךמֵյֵַע蔦⮔ךֻ瓦䍲ס偙㸐骭鞅脢כיַױն אסג״յئ٭ف٭ئؕغ Kotlin כע?Spring Boot כע?ֻזאא Kotlin ז יםמ?鞅ײ偙־םַ˘כַֹ☭עץبٛ٭ث 1 ⫖潨ךֵր⪜ꪎ!㵅鴫!ئ٭ ف٭ئؕغ Kotlinցֽ鞅ײמם׆כֽ⳹״ױն姌ס QR ؤ٭غյٛ٤ؠ ־鮫⪜⺪茣ך!PR https://fortegp05.booth.pm/items/1560389 --[[path = ebook_qr_code_1.png (not exist)]]-- ㎫ 1: ⪜ꪎ!㵅鴫!ئ٭ف٭ئؕغ Kotlin ֿך劤ד䖤ֿה ׆ס勓ע Java םלך Web ꪛ溪ס篑닫ֵֿ☭⻔ׄמئ٭ف٭ئؕغ Kotlin SpringBootך姌㵅鴫יײ勓ךն׆ס勓鞅ײ箽כ姌סֹם枱䡢מ םױն • SpringBoot סف٭ة٘٤ؓشو – ف٭ة٘٤ؓشو✑噺ס偙岺ֿ⮔־ – ف٭ة٘٤ؓشوמ⛘ֹؙٚ٭砈䨾ס⟵婞 • JPA מط٭هٜ JOIN ס㕈狸 – JPA ךط٭هٜ JOIN 偙岺כ甦꿔 – ؙٚ٭ס㸐⭦ • نٜؒؕסؓشوٞ٭غ – نٜؒؕؓشوٞ٭غס㵅鍮偙岺 ֵםגסئ٭ف٭ئؕغ Kotlin ך׆זילֹזי㵅鍮ס כַֹ䘼ַמ 瞩ֻג׆؆םמַֹ׆כעֵױ؆ն 4
ֿך劤דכ鍑铡׃זְֿה 勓詇ךע SpringBoot ךס㵅鍮偙岺מחַיַׂח־闋鞃יַױֿյֵׂױ ך杅㴻ס㵅鍮偙岺ךֵ勓呬溷ם❈ַ偙نٝ٭ّ٠٭ؠס╚麃םלמחַיע闋鞃 יַױ؆ն 杅מ JPA מط٭هٜ JOIN
ע긊䊬מ鏿겧ךֵג״յ勓剹ךע㕈狸ꌃ⮔סײ 䪒ַױն⪽✄溷מע剳偆⯸ꯙյN+1 ゼ꾴מחַיע䪒ַױ؆סךֵ־״ ׇ◗䪩ׂדַն ױג闋鞃מע JPA Thymeleaf ❈氠יַױֿյ勓詇ךע闋鞃ױ؆ն ׂ־םַ!כַֹ偙עץ⯼詇ׇ镣מם׆כֽ⳹״ױն ֿך劤ך⢪ְ倯 ׆ס勓ע瞉脢ֿئ٭ف٭ئؕغ Kotlin ךրֵעלֹס־םց㳔ש╚ך 沼ゼמ䘼זג׆כ鞪ג׆כ䪫銉剹ס䓺ךؓؗعوشعגסךն 勓剹ע׆ס勓סכֽמףⳛׂסֿך׀յכַֹכ׆潨䭰י剹־ יַױն׆ס勓鞅״ף槏㺌♐篁ײֿי槏闋ך׀ֹמע剹־יַױ ؆ն׆ס勓⪜כיאסמ㞺מֵ׆כמ蕟⽱䭥זיַגדׄג䌗ַ ךն 勓詇ע Vol.1 ס⻏סכֽ 2 ♧ꮳ⮂◙㴻ךַױնאב 1 ⫖ממע 㸯ַ؆דׄל겏ױף 1 ⫖מםאֹםط٭ُ겏״י䩘ⳛ־יַ׀גַכ 䘼זיַױն 鞅ײ箽זג䠊䞯ꪨꇙַס䭰䷂յꃯⲎ锡劳םלע姌סـشبٖذء氠ַי Twitter ך⽌ַיַגדׄכ㯹ַךնץյ䠊䞯ֽ䔵היֽױն #ְְ㹋騧؟٦غ٦؟؎سKotlin ױג♀㎇ס⫐㵼ך IntelliJ IDEAյVS Code ㎷劔ך䔔꼸砈䨾ע杅מםַע םסךյ⯼詇鞅؆ךַףゼ꾴םַכ䘼ַױն勓詇ס⫐㵼ך⮔־םַ掾 ֵֿףץ詇脢*3 ױךׇ┞㖥ׂדַնيتعؙنؚ٭عך㎇瞩יַגד׀ ױն ⯜顑✲갪 勓剹מ阾鼥⫐㵼ע瞉脢ס䨾㺲篁縨ס⪪䑑锶闋ךעֵױ؆նױגյ勓剹 ע⺪茣םꮹ婞牞劻ֹמⲚ״יַױֿյ瞉脢ֿאס⫐㵼⟛隍סךע *3 Twwiter https://twitter.com/FORTEgp05 5
ֵױ؆նאסג״յ勓剹ס阾鼥⫐㵼מ㕈טַג鞅脢ס鉿掿յצ鞅脢ֿ錺זג䴮 㵬מחַי瞉脢עם؆鬬⚈鬘ֹסךעֵױ؆ն 6
湡如 כׄח 2 勓詇ס⫐㵼 . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 SpringBoot סف٭ة٘٤ؓشو . . . . . . . . . . . . . . . . . . 2 JPA מط٭هٜ JOIN ס㕈狸 . . . . . . . . . . . . . . . . . 3 نٜؒؕסؓشوٞ٭غ . . . . . . . . . . . . . . . . . . . . . . 3 欎㘶 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 ל؆ם☭⻔ׄ־ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 ׆ס勓ך䕑׆כ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 ׆ס勓ךע闋鞃םַ׆כ . . . . . . . . . . . . . . . . . . . . . . . . . 5 ׆ס勓ס❈ַ偙 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 ⩸鬬◜꽃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 痥 1 畍 SpringBoot ךغ٦آّٝ،حف 9 1.1 ⯼䳀כםف٭ة٘٤ . . . . . . . . . . . . . . . . . . . . . . . . 9 1.1.1 ف٭ة٘٤┞镣㕂瞉免 . . . . . . . . . . . . . . . . . 9 1.2 䩘꽄ס嚣锡 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3 build.gradle.kts 紬겏 . . . . . . . . . . . . . . . . . . . . . . . 10 1.3.1 org.springframework.boot . . . . . . . . . . . . . . . . . 11 1.3.2 io.spring.dependency-management . . . . . . . . . . . . 11 1.3.3 jvm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.3.4 plugin.spring . . . . . . . . . . . . . . . . . . . . . . . . 12 1.3.5 plugin.jpa . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.4 gradle ס剳偆 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.5 لٜغ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.5.1 import javax.validation... ֿ闋尴ך׀םַ . . . . . . . . 14 1.5.2 Sort ֿؙٚ٭מם . . . . . . . . . . . . . . . . . . . . 15 1.5.3 flash().attribute ע㒘䭰㴻┮锡מ . . . . . . . . . . . . . . 15 1.6 ⫙لٜغכ劄箽牞霼 . . . . . . . . . . . . . . . . . . . . . . . . . 15 7
湡如 痥 2 畍 JPA ח״ذ٦ـٕ JOIN 鑐ׅ 17 2.1
وٞةؘؠعס✑䧯 . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2 1 㸐 1 ס JOIN . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.1 ؠٚتס✑䧯 . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.2 H2 ظ٭ذي٭تס陭㴻 . . . . . . . . . . . . . . . . . . . 20 2.2.3 ظ٭ذס✑䧯 . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2.4 㵅鉿 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.3 1 㸐㝂ס JOIN . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.3.1 ؠٚت㴻聋 . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.3.2 ظ٭ذס✑䧯 . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3.3 㵅鉿 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3.4 气䕉־ؠٚتמ㸐י㝂㸐 1 ךֵ陭㴻סꃯⲎ . . . . . 25 2.3.5 ⫙צ㵅鉿 . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.3.6 Classes ؠٚتס toString ס؛٭ف٭ٚؕغ . . . . . . . . 26 2.3.7 ┩䍲㵅鉿 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.4 㝂㸐 1 ס JOIN . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.5 㝂㸐㝂ס JOIN . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.5.1 ؠٚت㴻聋 . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.5.2 ظ٭ذס✑䧯 . . . . . . . . . . . . . . . . . . . . . . . . 30 2.5.3 㵅鉿 . . . . . . . . . . . . . . . . . . . . . . . . . . 31 痥 3 畍 ؿ؋؎ٕ،حفٗ٦س 33 3.1 وٞةؘؠعס✑䧯 . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.2 ؠٚتنٜؒؕס✑䧯 . . . . . . . . . . . . . . . . . . . . . . . . 34 3.2.1 HTML نٜؒؔס✑䧯 . . . . . . . . . . . . . . . . . . . 36 3.3 㵅鉿 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ֮הָֹ 39 䊬מؤ٭غ剹׀籽ׄ . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 劄䔿מםױגֿ˘ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 衼罏稱➜ 40 8