ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
本稿ではSpring FrameworkにおけるJPAを使用したDBの作成~値の取得まで一通りを説明します。
前提
・Spring Bootを使用
・mavenを使用
・DBはMySQLを使用(適宜読み替えられれば他のDBでも可能)
DBの作成
今回の例ではMySQLを用意します。
Windowsの場合、MySQLを単独でインストールすると色々と設定がめんどくさいので、今回はXAMPPのMySQLを使用します。XAMPPのインストールはこちらを参照。
MySQLにデータベースおよびテーブルを作成しましょう。以下のコマンドを実行します。
CREATE DATABASE spring_db CHARACTER SET utf8 COLLATE utf8_bin; GRANT ALL PRIVILEGES |
テスト用のテーブルを作成
以下のコマンドを実行してテスト用のテーブルを作成しましょう。
CREATE TABLE `user`( ALTER TABLE `user` ADD PRIMARY KEY (`id`); ALTER TABLE `user` MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1; INSERT INTO user (name)VALUES('tarou'),('jirou'); |
pom.xmlの修正
必要なライブラリをpom.xmlに記載します。
dependenciesに以下の項目を追加しましょう。
<dependency> |
DB接続設定
「src/maim/resources」の「application.properties」に以下の内容を追記しましょう。
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver |
※テーブル名が大文字の場合は以下の記述を追加する。
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl |
エンティティクラスの作成
Java側のデータ保持用のエンティティクラスを作成します。
分かりやすいようにentity用のパッケージを作成しておきましょう。
テーブル定義に沿って以下の様に定義しましょう。
package com.example.demo.entity; import javax.persistence.Column; @Entity public long getId() { public void setId(long id) { public String getName() { public void setName(String name) { |
リポジトリインターフェースの作成
DB操作の処理をリポジトリインターフェースで定義します。
分かりやすいようにrepository用のパッケージを作成しておきましょう。
以下、リポジトリインターフェースの定義例となります。
package com.example.demo.repository; import com.example.demo.entity.User; import org.springframework.data.jpa.repository.JpaRepository; @Repository |
JpaRepositoryのジェネリクスの第二引数にはUserエンティティの主キーの型を指定します。
もし、独自のSQLを記述したい場合はメソッド名を指定して@Query内にSQLを記述します。
package com.example.demo.repository; import com.example.demo.entity.User; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; @Repository @Query("SELECT c FROM User c WHERE c.id = :id") List<Customer> findAllById(@Param("id") Integer id); } |
テーブルから値の取得
それでは実際にテーブルから値を取得してみましょう。
適当な以下のようなコントローラーを作成して、リポジトリ経由でデータを取得してみます。
userテーブルからuser情報を取得する処理を記載してみましょう。
package com.example.demo; import org.springframework.beans.factory.annotation.Autowired; import com.example.demo.entity.User; @SpringBootApplication @RequestMapping("/") } |
出力結果は以下の通りです。
tarou |
- インストール(eclipseプラグイン)
- クイックスタート
- プロジェクトの作成
- Spring Bootプロジェクトの作成
- Spring Bootプロジェクトの実行
- Spring BootでHello World!
- アノテーション一覧
- DB接続設定や値の取得(JdbcTemplate編)
- ビューから値をモデルに格納しコントローラーで受け取る方法
- コントローラーにてモデルに値を格納してビューに渡す方法
- テンプレートエンジン
- ModelとModelAndViewの違い
- AOPの使用方法
- classpath: 内部ファイルの読み込み
- file: 外部ファイルの読み込み
- CSVファイルアップロード方法(Ajax)
- CSVファイルダウンロード方法(Ajax)
- Spring Bootプロジェクトのビルドと本番環境へのデプロイ方法(内部tomcat使用)
- Application.propertiesの環境依存設定の分割方法
- JPAにおけるEntityManagerの取得方法
- JPAにおけるjava.sql.Connectionの取得方法
- エラー一覧
- jarの引数を受け取る方法
- Spring BootでGmailからメール送信
- 複数のDBに接続する設定(Spring Boot & JPA編)
- ポート番号の変更
- Basic認証の実装と特定のURLに限定する方法
- Spring SecurityのBasic認証の無効化
- 独自のエラーページを定義する方法
- プロパティファイルの値やjar実行時の引数を取得する方法
人気ページ
最近更新/作成されたページ
- 【Mac】プリントジョブのオフセットとは(カスタムプリセットとの違い) (2023-08-14 09:54:04)
- 印刷関連 (2023-08-14 09:45:32)
- 【エラー】ドキュメントが読み込まれなかったため、デザイナーを表示できません (2023-08-12 06:36:23)
- SattaMatka (2023-07-03 19:31:13)
- ログイン画面(認証システム)の作成 (2023-06-13 17:09:48)
- 本番環境のdll内で参照しているdllファイルの置き場所 (2023-04-27 18:10:31)
- 【Visual Studio】 C#のForm自動生成時に「値が有効な範囲にありません」エラー (2023-04-27 10:04:15)
- 【Inno Setup】 エラー: disk spanning must be enabled in order to create an installation larger than 2100000000 (2023-04-19 09:29:09)
- Inno Setupとは (2023-04-19 09:27:47)
- その他 (2023-04-19 09:26:00)
最近コメントのあったページ
最近の質問
- c.wiki (2023-09-14 10:51:04)
- $(document).ready(function() { ... ってなに? (2023-04-17 11:02:56)
- 質問です (2020-02-20 12:19:36)
- フリーランスの単価って高いですか? (2020-02-12 19:56:16)
- 情報系のaoを受けるつもりなんですが何かおすすめのソフトはありますか? (2020-02-12 19:54:22)
- test3 (2020-02-08 23:50:54)
- セレクトボックスのCSSのcontentで三角の部分が押せない (2019-07-03 13:06:10)
- GCPのwp-config.phpでpermission denied (2019-06-05 20:04:08)
- Spring FrameworkのEntityのカラム名の大文字小文字、アンスコについて (2019-02-01 07:13:49)
- PHP(Laravel)からPythonのプログラムを呼び出したいのですがどうすればよいでしょうか。 (2018-12-06 06:26:57)
- djangoを本番環境にデプロイしたいのですがどのレンタルサーバー or VPSサーバーがよいですか (2018-12-01 12:04:18)
- Django administrationのUsernameとPasswordについて (2018-11-30 11:55:20)
- Google Adsenseでアダルトコンテンツと誤認されてしまいました。 (2018-09-09 17:15:36)
- Google MapsをUnityで使用する方法&料金 (2018-08-28 02:37:26)
- Amazon PA-APIのSort=salesrankが効かない (2018-07-21 08:54:25)
- 楽観ロックと悲観ロックの違い (2018-01-11 05:05:33)
- レンタルサーバーって沢山ありますけどどこがいいでしょうか?AWSってどうなんですか? (2018-01-09 10:03:20)
- ディープラーニングのライブラリってどれがオススメですか? (2018-01-06 05:15:40)
- Webスクレイピングってどこまでが違法なんでしょうか? (2018-01-06 05:09:08)
- 人工知能(AI)、機械学習、ディープラーニングの違い (2018-01-06 02:40:44)
コメントを削除してもよろしいでしょうか?
No.8 |
PatrickEvero
| 2023-09-20 20:58:31
<a href="https://subscribe.ru/group/kryim/">https://subscribe.ru/group/kryim/</a> [url=https://oko-planet.su/politik/infonfokoreg/94175-v-p-atyashevo-respublika-mordoviya-otkrylsya-novyy-ledovyy-dvorec.html]https://oko-planet.su/politik/infonfokoreg/94175-v-p-atyashevo-respublika-mordoviya-otkrylsya-novyy-ledovyy-dvorec.html[/url] http://www.kasparov.ru/material.php?id=518A02711786BNo.7 |
PatrickEvero
| 2023-09-20 19:04:47
<a href="https://ru.wikipedia.org/wiki/Вишневец_(усадьба)">https://ru.wikipedia.org/wiki/Вишневец_(усадьба)</a> [url=https://www.google.com/url?q=https%3A%2F%2Fuskaz.ru%2F]https://www.google.com/url?q=https%3A%2F%2Fuskaz.ru%2F[/url] https://vz.ru/news/2012/7/5/587058.htmlNo.6 |
PatrickEvero
| 2023-09-20 18:22:21
<a href="https://vse42.ru/news/748997">https://vse42.ru/news/748997</a> [url=https://www.google.com/url?q=https%3A%2F%2Ffcorel.ru%2F]https://www.google.com/url?q=https%3A%2F%2Ffcorel.ru%2F[/url] https://subscribe.ru/group/kryim/No.5 |
PatrickEvero
| 2023-09-20 16:25:35
<a href="https://oko-planet.su/politik/infonfokoreg/94175-v-p-atyashevo-respublika-mordoviya-otkrylsya-novyy-ledovyy-dvorec.html">https://oko-planet.su/politik/infonfokoreg/94175-v-p-atyashevo-respublika-mordoviya-otkrylsya-novyy-ledovyy-dvorec.html</a> [url=https://www.google.com/url?q=https%3A%2F%2Fsuper-arsenal.ru%2F]https://www.google.com/url?q=https%3A%2F%2Fsuper-arsenal.ru%2F[/url] https://www.google.com/url?q=https%3A%2F%2Fsharanrb.ru%2FNo.4 |
PatrickEvero
| 2023-09-20 15:34:49
<a href="https://www.google.com/url?q=https%3A%2F%2Fuskaz.ru%2F">https://www.google.com/url?q=https%3A%2F%2Fuskaz.ru%2F</a> [url=https://24smi.org/news/7681-leonidu-razvozgaevu-prediavlen.html]https://24smi.org/news/7681-leonidu-razvozgaevu-prediavlen.html[/url] https://www.google.com/url?q=https%3A%2F%2Fsuper-arsenal.ru%2FNo.3 |
PatrickEvero
| 2023-09-20 12:11:06
<a href="https://www.rbc.ru/business/20/10/2015/562528799a794727f99cddbf">https://www.rbc.ru/business/20/10/2015/562528799a794727f99cddbf</a> [url=https://glavred.info/politics/96430-v-otvet-na-akt-magnitskogo-rossiya-zapretila-amerikancam-usynovlyat-detey.html]https://glavred.info/politics/96430-v-otvet-na-akt-magnitskogo-rossiya-zapretila-amerikancam-usynovlyat-detey.html[/url] https://www.google.com/url?q=https%3A%2F%2Fizdrevaya.ru%2FNo.2 |
PatrickEvero
| 2023-09-20 09:43:17
<a href="https://abnews.ru/2016/10/15/rossiya-investiruet-v-infrastrukturu-indii-500-mln">https://abnews.ru/2016/10/15/rossiya-investiruet-v-infrastrukturu-indii-500-mln</a> [url=https://www.google.com/url?q=https%3A%2F%2Fsuper-arsenal.ru%2F]https://www.google.com/url?q=https%3A%2F%2Fsuper-arsenal.ru%2F[/url] https://www.google.com/url?q=https%3A%2F%2Fsuper-arsenal.ru%2FNo.1 |
PatrickEvero
| 2023-09-20 08:47:34
<a href="https://www.newsru.com/russia/30jan2012/localterr.html">https://www.newsru.com/russia/30jan2012/localterr.html</a> [url=https://www.google.com/url?q=https%3A%2F%2Fuz-translations.su%2F]https://www.google.com/url?q=https%3A%2F%2Fuz-translations.su%2F[/url] https://tt.wikipedia.org/wiki/?т?ш_районы