boot【第2回】Springbootを使って、DBとの連携システムを考える前回は簡単な画面表示をするところまで説明しました。今回はDB(データベース)の設定をしていきたいと思います。利用してみたいと思います。ライブラリ指定したかと思います。指定してあればpom.xmlに以下の記述がされているはずです。無ければ追記してください。次にapplication.ymlにDB設定をしていきます。一通りの設定を記述しています。ドライバのクラス名を指定してます。urlにはDBの種類、DB名とオプションを記載してあります。h2にtestdbという名前のDBをmem指定でインメモリデータベースとして準備しています。インメモリデータベースはSpringboot起動中に使えるメモリ上のデータベースです。この設定だと、Springbootを停止するとメモリは破棄されます。インメモリの場合、通常h2は接続が切れるとデータベースをドロップします。それを防ぐために「DB_CLOSE_DELAY=-1;」追記します。VM終了時の自動データベースクローズを無効にしています。あとは接続するためのusernameとpasswordを設定します。always」については後で説明します。h2コンソールの設定h2コンソールを利用することによって、DBの確認がしやすくなります。application.ymlに以下を追記します。/h2-console「spring.h2.console」に一通りの設定を記述しています。「enabled」は、コンソールの利用有無を設定しています。trueなら利用、falseなら利用しない、となります。「path」は、H2コンソールを表示するURLパスとなります。/h2-console」と設定した場合、ローカル起動して「http://localhost:8080/h2-console」にアクセスするとh2コンソールが表示されます。この画面にapplication.ymlで設定した情報を入力して「Connect」を押すとDBの状態が見れます。今はまだDBの定義もしていないので、この画面が見えるだけで良いです。DBのテーブルを準備する次にDBのテーブルを準備します。いくつか方法がありますので、順番に紹介していきます。JPAによるテーブルの設定application.ymlに「spring.jpa.」からの設定を追記します。これによってSQLのお手伝いをしてくれる設定を取り込みます。cleate「show-sql」をtrueにすると、生成されたSQLがコンソール等で表示されるようになります。自動的にクラス名のテーブルで、変数をカラムとして作成してくれるようになります。クラス名がProgramで、その中に変数名id、nameがあるとします。アノテーションを付けて起動すると、カラムidとnameが存在するprogramテーブルが自動的に作られます。設定していると、起動時に以下のようなログが表示されるので、動きがわかりやすいです。次に「schema.sql」を利用したテーブル設定の紹介です。起動時に決められた配置にあるSQLファイルを読み込んでくれるようになります。いう名前のファイルをresourcesディレクトリ直下に配置し、その中にCREATE文など必要なものを記載していきます。〜」としておくと良いです。中身にINSERT文を記載しておくことによって起動時にデータを入れてくれるようになります。1500);上記テーブル設定についての注意点では「ddl-auto」を有効にしつつ、「schema.sql」を設定した場合はどうなるでしょうか?この場合で起動すると、「schema.sql」「data.sql」が実行されてテーブルとデータが出来るも、そのあとに「ddl-auto」の機能で一度テーブルを消してから@Entityの情報を読み取ってテーブルを作る、といった動きになり、「schema.sql」「data.sql」は意味が無くなります。用途に合わせてどのようにテーブルの準備するかは検討しておくと良いでしょう。今回はSQLの勉強も兼ねて、「schema.sql」でテーブル準備をしたいと思います。「data.sql」に記載したデータを初期値として起動時に登録する形で進めます。そのために今の「ddl-auto」の設定を「cleate」から「none」に書き換えて無効にします。「ddl-auto」が有効の時の勉強も別途する予定なので、記述自体はひとまず残しておく方向です。起動してh2コンソールでテーブルを確認するでは、上記の「schema.sql」「data.sql」を準備した状態で起動してみます。起動後、h2コンソールを開きます。データが入っていればOKです。先に書いた通り、application.ymlに記載した情報を入力して、Connectボタンを押します。「schema.sql」で記載したテーブル名があればOKです。真ん中のテキストエリアにSQL文を書き込んで、「Run」ボタンを押して実行してみてください。PROGRAM」で、PROGRAMテーブルの中身を見てみます。SQLの結果、正常にデータが表示されていればOKです。これで最低限のDBの準備が出来ました。次からはこのDBを利用して、画面に表示したりデータの変更をしたりしていきたいと思います。技術力で世の中をもっと面白くエンジニア積極採用中!ライトコードでは、エンジニアを積極採用中!ライトコードでは、エンジニアを積極採用しています!社長と一杯しながらお話しする機会もご用意しております。そのほかカジュアル面談等もございますので、くわしくは採用情報をご確認ください。採用情報へあっきー(エンジニア)元ファストフード店長代理のJava系ITエンジニア。現在はAndroidアプリ開発を主に担当したり。休みの日はゲームとか風景写真撮りに行ったりとかマラソンしたりとか。Studioモリ(エンジニア)2024.10.31immichを知ってほしいIT技術immichキムくん(エンジニア)2024.10.31ブログ一覧エンジニア大募集中!ライトコードでは、エンジニアを積極採用中です。WEBエンジニアとモバイルエンジニアは是非ご応募お待ちしております!また、フリーランスエンジニア様も大募集中です。