Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
いろいろ実践!サーバーサイドKotlin【サンプル】 / server_side_kotlin...
Search
FORTE
September 09, 2020
Technology
570
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
180
サーバーサイドKotlinやってみた!/ssk_meetup_18_01
fortegp05
1
59
Podcast配信で広がったアウトプットの輪~70人と音声発信してきた7年間~/outputconf_01
fortegp05
0
540
異夢同船〜異なる夢を持ちチームで作業する〜_サンプル/imudousen_sample
fortegp05
0
440
ラプラスの箱を開ける ~レトロゲームから学んだ工夫~/retro_games_any_03_01
fortegp05
1
110
ジモtechVol1_LT_フルリモート"され"力/jimotech_lt_1
fortegp05
0
86
超入門!サーバーサイドKotlin〜2026春更新版〜/sski1
fortegp05
0
610
MicronautでgRPCに入門!実践!サーバーサイドKotlin/sskm2_sample
fortegp05
0
130
アンチパターンから学ぶコミュニケーション/lcap_sample
fortegp05
0
230
Other Decks in Technology
See All in Technology
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
170
spanner-autoscalerに学ぶ CRD設計パターン 〜自動化と緊急時対応を両立する Kubernetesコントローラーの作り方〜
tkuchiki
0
220
インバスケット試験対策アプリを 作って見えたAIエージェント構築 ナレッジ2選
shichijoyuhi
1
110
20260929_AmazonGuardDutyの検出通知メールにAWS DevOpsAgentの調査結果を追加する
yhana
1
410
『GOエコノミー 』(相乗りサービス) におけるスペック駆動開発
mot_techtalk
1
180
行動するAIのためのオントロジー | DevRev — Encraft #26.pdf
dvrv_tknrszk
2
670
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
2
170
Databricksメトリクスビューはじめてのもくもく会
taka_aki
0
160
BedrockとLambdaで作る リアルタイム進行型推理ゲーム
kawametho
0
150
AIに書かせて、プラットフォームで縛る ― EKSプラットフォームで実践した責任境界と権限設計
elmodev09
1
1.1k
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
310
企業の現実世界をグラフで写し取る
sansantech
PRO
0
240
Featured
See All Featured
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
2k
The browser strikes back
jonoalderson
0
1.7k
The Pragmatic Product Professional
lauravandoore
37
7.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
410
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
700
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
420
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.9k
Navigating Weather and Climate Data
rabernat
0
540
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