Submit Search
Upload
SpringBootによるDB更新
•
0 likes
•
235 views
iPride Co., Ltd.
Follow
2022/06/03の勉強会で発表されたものです。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 18
Download now
Download to read offline
Recommended
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
Yuta Imai
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
U-dai Yokoyama
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
UnityTechnologiesJapan002
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
ドメイン駆動設計 実践ガイド
ドメイン駆動設計 実践ガイド
増田 亨
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
Recommended
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
Yuta Imai
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
U-dai Yokoyama
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
UnityTechnologiesJapan002
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
ドメイン駆動設計 実践ガイド
ドメイン駆動設計 実践ガイド
増田 亨
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
Yoshitaka Kawashima
例外設計における大罪
例外設計における大罪
Takuto Wada
次世代ゲームにおける自動生成技術
次世代ゲームにおける自動生成技術
Youichiro Miyake
Unityと.NET
Unityと.NET
AimingStudy
オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
大規模分散システムの現在 -- Twitter
大規模分散システムの現在 -- Twitter
maruyama097
Tackling Complexity
Tackling Complexity
Yoshitaka Kawashima
Domain Modeling Made Functional (DevTernity 2022)
Domain Modeling Made Functional (DevTernity 2022)
Scott Wlaschin
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
リーンなコードを書こう:実践的なオブジェクト指向設計
リーンなコードを書こう:実践的なオブジェクト指向設計
増田 亨
【Unity道場】新しいPrefabワークフロー入門
【Unity道場】新しいPrefabワークフロー入門
Unity Technologies Japan K.K.
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
Fujio Kojima
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説
Hironori Washizaki
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
インフラCICDの勘所
インフラCICDの勘所
Toru Makabe
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
Cloud runのオートスケールを検証してみる
Cloud runのオートスケールを検証してみる
虎の穴 開発室
.NET Core時代のCI/CD
.NET Core時代のCI/CD
Yuta Matsumura
Spring bootでweb 基本編
Spring bootでweb 基本編
なべ
Mvc conf session_4_ono
Mvc conf session_4_ono
Hiroshi Okunushi
More Related Content
What's hot
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
Yoshitaka Kawashima
例外設計における大罪
例外設計における大罪
Takuto Wada
次世代ゲームにおける自動生成技術
次世代ゲームにおける自動生成技術
Youichiro Miyake
Unityと.NET
Unityと.NET
AimingStudy
オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
大規模分散システムの現在 -- Twitter
大規模分散システムの現在 -- Twitter
maruyama097
Tackling Complexity
Tackling Complexity
Yoshitaka Kawashima
Domain Modeling Made Functional (DevTernity 2022)
Domain Modeling Made Functional (DevTernity 2022)
Scott Wlaschin
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
リーンなコードを書こう:実践的なオブジェクト指向設計
リーンなコードを書こう:実践的なオブジェクト指向設計
増田 亨
【Unity道場】新しいPrefabワークフロー入門
【Unity道場】新しいPrefabワークフロー入門
Unity Technologies Japan K.K.
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
Fujio Kojima
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説
Hironori Washizaki
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
インフラCICDの勘所
インフラCICDの勘所
Toru Makabe
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
Cloud runのオートスケールを検証してみる
Cloud runのオートスケールを検証してみる
虎の穴 開発室
.NET Core時代のCI/CD
.NET Core時代のCI/CD
Yuta Matsumura
What's hot
(20)
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
例外設計における大罪
例外設計における大罪
次世代ゲームにおける自動生成技術
次世代ゲームにおける自動生成技術
Unityと.NET
Unityと.NET
オブジェクト指向できていますか?
オブジェクト指向できていますか?
大規模分散システムの現在 -- Twitter
大規模分散システムの現在 -- Twitter
Tackling Complexity
Tackling Complexity
Domain Modeling Made Functional (DevTernity 2022)
Domain Modeling Made Functional (DevTernity 2022)
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
リーンなコードを書こう:実践的なオブジェクト指向設計
リーンなコードを書こう:実践的なオブジェクト指向設計
【Unity道場】新しいPrefabワークフロー入門
【Unity道場】新しいPrefabワークフロー入門
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
インフラCICDの勘所
インフラCICDの勘所
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
Cloud runのオートスケールを検証してみる
Cloud runのオートスケールを検証してみる
.NET Core時代のCI/CD
.NET Core時代のCI/CD
Similar to SpringBootによるDB更新
Spring bootでweb 基本編
Spring bootでweb 基本編
なべ
Mvc conf session_4_ono
Mvc conf session_4_ono
Hiroshi Okunushi
20110607
20110607
小野 修司
20080524
20080524
小野 修司
HTML5最新動向
HTML5最新動向
Shumpei Shiraishi
G0042 h
G0042 h
silicone69
HTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろう
yoshikawa_t
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
Daizen Ikehara
CodeIgniter 〜 2008年大躍進のPHPフレームワーク
CodeIgniter 〜 2008年大躍進のPHPフレームワーク
kenjis
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
test slides 4
test slides 4
Yuichi Takahashi
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
HTML5&API総まくり
HTML5&API総まくり
Shumpei Shiraishi
Xamarin with Entity Framework Core
Xamarin with Entity Framework Core
Takeshi Fujimoto
20091030cakephphandson 01
20091030cakephphandson 01
Yusuke Ando
20050917
20050917
小野 修司
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Kazumi IWANAGA
はじめてのCodeIgniter
はじめてのCodeIgniter
Yuya Matsushima
Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現
Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現
インフラジスティックス・ジャパン株式会社
Similar to SpringBootによるDB更新
(20)
Spring bootでweb 基本編
Spring bootでweb 基本編
Mvc conf session_4_ono
Mvc conf session_4_ono
20110607
20110607
20080524
20080524
HTML5最新動向
HTML5最新動向
G0042 h
G0042 h
HTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろう
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
CodeIgniter 〜 2008年大躍進のPHPフレームワーク
CodeIgniter 〜 2008年大躍進のPHPフレームワーク
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
test slides 4
test slides 4
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
HTML5&API総まくり
HTML5&API総まくり
Xamarin with Entity Framework Core
Xamarin with Entity Framework Core
20091030cakephphandson 01
20091030cakephphandson 01
20050917
20050917
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
はじめてのCodeIgniter
はじめてのCodeIgniter
Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現
Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現
More from iPride Co., Ltd.
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
iPride Co., Ltd.
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作り
iPride Co., Ltd.
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
iPride Co., Ltd.
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
iPride Co., Ltd.
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
iPride Co., Ltd.
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
iPride Co., Ltd.
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
iPride Co., Ltd.
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
iPride Co., Ltd.
AWS SAM入門 2024/01/26の勉強会で発表されたものです【アイ・プライド】
AWS SAM入門 2024/01/26の勉強会で発表されたものです【アイ・プライド】
iPride Co., Ltd.
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
iPride Co., Ltd.
ChatGPTを用いてCDKを勉強
ChatGPTを用いてCDKを勉強
iPride Co., Ltd.
OpenID Connectについて
OpenID Connectについて
iPride Co., Ltd.
画像生成AIの問題点
画像生成AIの問題点
iPride Co., Ltd.
AI入門
AI入門
iPride Co., Ltd.
MVCになぞらえて理解するReact
MVCになぞらえて理解するReact
iPride Co., Ltd.
AIについて学んだこと ~ 生成AIとは? ~
AIについて学んだこと ~ 生成AIとは? ~
iPride Co., Ltd.
OAuth2.0について
OAuth2.0について
iPride Co., Ltd.
More from iPride Co., Ltd.
(20)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
AWS SAM入門 2024/01/26の勉強会で発表されたものです【アイ・プライド】
AWS SAM入門 2024/01/26の勉強会で発表されたものです【アイ・プライド】
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
ChatGPTを用いてCDKを勉強
ChatGPTを用いてCDKを勉強
OpenID Connectについて
OpenID Connectについて
画像生成AIの問題点
画像生成AIの問題点
AI入門
AI入門
MVCになぞらえて理解するReact
MVCになぞらえて理解するReact
AIについて学んだこと ~ 生成AIとは? ~
AIについて学んだこと ~ 生成AIとは? ~
OAuth2.0について
OAuth2.0について
Recently uploaded
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
Recently uploaded
(8)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
SpringBootによるDB更新
1.
Nagai 2022/6/3 SpringBootによるDB更新
2.
目次 • 背景 • 更新機能実装 •
まとめ
3.
背景 • 備品管理システムを作成しています • 利用者、利用開始日、返却予定日といった利用情報を登録したい •
利用情報の入力フォームの作成 • 備品情報テーブルに利用情報を更新
4.
主要なファイル • MVCアーキテクチャに乗っ取る Entity 備品情報テーブル Repository Controller Template Htmlファイル 入力フォーム等画面表示 Entity ユーザーテーブル Repository Service 使いたい機能をメソッドとして定義 モデル コントローラー ビュー (サービス)
5.
Entity • Javaオブジェクトとしてレコードを テーブル内に保管しておく package ∼; import
∼; @Entity @Table(name = "equipmenttable") public class Equipment { /* ID */ @Id @GeneratedValue(strategy = GenerationType.AUTO) // 主キー @Column(name = "id") private String id; /* 購入日 */ @DateTimeFormat(pattern = "yyyy-MM-dd") @Column(name = "purchase_date") @PastOrPresent(message = "明日以降の日付は無効です") private Date purchaseDate; /* 途中省略 */ public String getId() { return id; } public void setId(String id) { this.id = id; } public Date getPurchaseDate() { return purchaseDate; } public void setPurchaseDate(Date purchaseDate) { this.purchaseDate = purchaseDate; }
6.
Repository • エンティティだけではデータベース アクセスはできない • リポジトリは汎用的なデータベース アクセスの処理を自動的に実装する package
jp.co.ipride.EquipmentManager.repositories; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import jp.co.ipride.EquipmentManager.entity.Equipment; @Repository public interface EquipmentRepository extends JpaRepository<Equipment, Long> { public Optional<Equipment> findById(String id); }
7.
Service • アプリケーション全体で呼び出せるようなメソッドを用いたい場合に サービスクラスにメソッドを定義する public class
EquipmentService { @Autowired private EquipmentRepository equipmentRepository; /*情報更新*/ public void editInfo(Equipment equipment) { equipmentRepository.saveAndFlush(equipment); } /*idによって指定されている備品情報を選択*/ public Optional<Equipment> selectById(String id) { return equipmentRepository.findById(id); }
8.
利用情報入力画面の表示
9.
コントローラー • mavが返してるのは Model…ユーザーの全データ(id と名前)、特定IDの備品データ View…テンプレートのuse.html @Controller public class
UseController { @Autowired private UserService userService; @Autowired private EquipmentService equipmentService; /*利用登録画面の表示*/ @RequestMapping(value = "/{id}/use") public ModelAndView use( @PathVariable String id, ModelAndView mav, @ModelAttribute("formEquipment") Equipment equipment) { List<User> userList = userService.getUserAll(); mav.addObject("userList",userList); Optional<Equipment> equipmentOpt = equipmentService.selectById(id); equipment = equipmentOpt.get(); mav.addObject("formEquipment", equipment); mav.setViewName("use"); return mav; }
10.
入力フォームテンプレート1 • <form action=
update > フォーム送信後/updateに遷移する • <input type= hidden th:value=*{id} 入力フォームに入力せずとも備品IDが 送信される • <select>でプルダウン <input type= date >でカレンダー入力 を実現 <body> <h1 th:text="${id} + 'の利用'"></h1> <form method="POST" th:object="${formEquipment}" th:action="update"> <input type="hidden" name="id" th:value=*{id} /> <p>利用者を選択してください。</p> <div class="container"> <select name="useUser" th:value=*{useUser}> <option th:each="user : ${userList}" th:value="${user.id}" th:text="${user.name}" > </option> </select> </div> <p>利用日を選択してください。</p> <input type="date" name="useDate" th:field=*{useDate}></input> <p>返却日を選択してください</p> <input type="date" name="returnDate" th:field=*{returnDate}></ input> <input type="submit" value="利用" /> </form> </body> </html>
11.
入力フォームテンプレート2 • th:eathで繰り返し ${userList}はコントローラーから 返された値を用いている 自動的に順番に取り出してくれる • 赤丸の箇所をformEquipmentに 入れて送信する <body> <h1
th:text="${id} + 'の利用'"></h1> <form method="POST" th:object="${formEquipment}" th:action="update"> <input type="hidden" name="id" th:value=*{id} /> <p>利用者を選択してください。</p> <div class="container"> <select name="useUser" th:value=*{useUser}> <option th:each="user : ${userList}" th:value="${user.id}" th:text="${user.name}" > </option> </select> </div> <p>利用日を選択してください。</p> <input type="date" name="useDate" th:field=*{useDate}></input> <p>返却日を選択してください</p> <input type="date" name="returnDate" th:field=*{returnDate}></ input> <input type="submit" value="利用" /> </form> </body> </html>
12.
13.
利用情報をデータベース更新
14.
コントローラー • 入力フォームから送信されたら • sampleに更新前の備品情報を代入 •
先程入力した要素のみsampleに セット • saveAndFlush(ここではeditInfo) でsampleの内容をデータベースに 保存 /*利用情報を更新し詳細画面に遷移*/ @RequestMapping(value="/{id}/update",method=RequestMethod.POST) public ModelAndView update(@PathVariable String id,ModelAndView mav,@ModelAttribute Equipment equipment) { Optional<Equipment> equipmentOpt = equipmentService.selectById(id); Equipment sample = equipmentOpt.get(); sample.setUseUser(equipment.getUseUser()); sample.setUseDate(equipment.getUseDate()); sample.setReturnDate(equipment.getReturnDate()); equipmentService.editInfo(sample); mav.setViewName("redirect:/{id}/product"); return mav; }
15.
16.
疑問点 • 以下を解決する手段 金額 利用者
購入先 PC1 80000 Tanaka OOstore PC2 50000 Sato XXstore PC1 Null Nagai Null 入力情報 利用者だけを更新したい 既存の備品情報 金額 利用者 購入先 PC1 Null Nagai Null PC2 50000 Sato XXstore saveAndFlush()だと他も更新してしまう
17.
まとめ • DB更新機能作成の流れを説明した • DB更新、入力フォームの作成に慣れる良い機会となった
18.
参考文献 • 掌田津耶乃,「Spring Boot2
プログラミング入門」,秀和システム,2018
Download now