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
580
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
190
サーバーサイドKotlinやってみた!/ssk_meetup_18_01
fortegp05
1
60
Podcast配信で広がったアウトプットの輪~70人と音声発信してきた7年間~/outputconf_01
fortegp05
0
560
異夢同船〜異なる夢を持ちチームで作業する〜_サンプル/imudousen_sample
fortegp05
0
440
ラプラスの箱を開ける ~レトロゲームから学んだ工夫~/retro_games_any_03_01
fortegp05
1
110
ジモtechVol1_LT_フルリモート"され"力/jimotech_lt_1
fortegp05
0
88
超入門!サーバーサイドKotlin〜2026春更新版〜/sski1
fortegp05
0
620
MicronautでgRPCに入門!実践!サーバーサイドKotlin/sskm2_sample
fortegp05
0
130
アンチパターンから学ぶコミュニケーション/lcap_sample
fortegp05
0
240
Other Decks in Technology
See All in Technology
Temporal 最高!でも改めて「日付」について調べたら人類の負債すぎる件
riyaamemiya
0
110
会社説明資料
persolserverworks
0
9.8k
継続的なAIコスト最適化
bgpat
1
330
遠藤な_めぐろLT #38 「社内のAI活用推進」@麻布台_20261009
endonanana
0
130
AI時代のPRレビューにどう向き合うか?
kairim0
1
240
1つのリクエストを追って理解する - llm-dのP/D分離
akhino
1
150
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
750
Optunaの最新リリースv5.0について
pfn
PRO
0
110
Webの常識が通じないHTMLメールのダークモード
teamlab
PRO
0
120
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
820
Metadata - Section 1: HTML Basics
mohab1
0
110
AIは「聞けば答える」から「任せると自分で進める」へ - JACTIMペナン地域部会・ペナン三水会講演
knishioka
0
110
Featured
See All Featured
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
Crafting Experiences
bethany
1
380
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
570
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
The SEO identity crisis: Don't let AI make you average
varn
0
590
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
630
Producing Creativity
orderedlist
PRO
348
41k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
sira's awesome portfolio website redesign presentation
elsirapls
0
450
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