ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
本稿ではSpring FrameworkにおけるDBの作成~取得まで一通りを説明します。
DBの作成
データベースを使用するので、今回はMySQLを用意します。
Windowsの場合、MySQLを単独でインストールすると色々と設定がめんどくさいので、今回はXAMPPのMySQLを使用します。XAMPPのインストールはこちらを参照。
MySQLにデータベースおよびテーブルを作成しましょう。以下のコマンドを実行します。
CREATE DATABASE spring_db CHARACTER SET utf8 COLLATE utf8_bin; USE spring_db; CREATE TABLE users ( |
JDBCを記載
pom.xmlに以下の記述を追加しましょう。
<!-- JDBC --> <!-- CGLIB --> |
※ついでにCGLIBというライブラリも記載しておきましょう。このライブラリはInterfaceの実装でないbeanをInjectionする際に必要となります。
DB接続設定
「src/maim/resources」に以下の内容の「jdbc.properties」ファイルを作成しましょう。
jdbc.driverClassName=com.mysql.jdbc.Driver |
DB設定用のクラスを用意します。
「com.example.springmvc.config」パッケージを作成して、以下の内容の「DBConfig.java」を作成しましょう。
@Configuration @Autowired @Bean @Bean @Bean |
@PropertySourceで先ほど作成した「jdbc.properties」を読み込み、datasource()メソッド内で設定内容をリターンしています。
メソッド内を見るとenvironmentから設定を取得していることが分かります。
このように、読み込まれた設定情報は自動的にEnvironmentにインジェクションされます。
後述しますが、あるクラスからDBアクセスをする際にはJdbcTemplateクラスを通してDBへアクセスすることになります。
DataSourceTransactionManagerはトランザクションが発生する際に使用することになります。
DBの設定は以上となります。
DBから値を取得
それでは実際にDBから値を取得しましょう。
デフォルトで用意されているHomeControllerを以下のように書き換えましょう。
@Controller private static final Logger logger = LoggerFactory.getLogger(HomeController.class); @Autowired @RequestMapping(value = "/", method = RequestMethod.GET) Date date = new Date(); String formattedDate = dateFormat.format(date); model.addAttribute("serverTime", formattedDate); //ユーザーを取得 model.addAttribute("users", users); return "home"; } |
インジェクションしたJdbcTemplateを通じてDBにアクセスしています。
これをmodelに格納することで画面側で格納した値を使用することができるようになります。
- インストール(eclipseプラグイン)
- クイックスタート
- プロジェクトの作成
- Spring Bootプロジェクトの作成
- Spring Bootプロジェクトの実行
- Spring BootでHello World!
- アノテーション一覧
- DB接続設定からエンティティおよびリポジトリの作成、値の取得まで(JPA編)
- ビューから値をモデルに格納しコントローラーで受け取る方法
- コントローラーにてモデルに値を格納してビューに渡す方法
- テンプレートエンジン
- 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)
コメントを削除してもよろしいでしょうか?
コメントがありません