はじめに
前回の記事で、Springbootで作成したプロジェクトで文字列を呼び出す処理を作成しました。
今回は、データベースを作成し、レコードを取り出す処理を作成してみます。
ちなみに、データベースは自分のローカル環境に作成します。PostgreSQLを使います。それ用の記事を作成しているのでそちらを参照ください。
A5M2を使ってテーブル作成
別にCUIで作成してもいいんですが、A5M2使うほうが効率良いのでそちらで作成します。
A5:SQL Mk-2 - フリーのSQLクライアント/ER図作成ソフト (松原正和)
インストールは難しくもなんとも無いのでインストールしてください。他のSQLクエリエディタを利用しているのであれば、それをそのまま利用してください。別にこれを使わなければならないわけではないです。
今回は、Springbootでレコードを取り出すだけなので、適当な名称でテーブルを作ってみます。
CREATE TABLE mst_test ( id serial not null , name character varying(50) not null , delete_flg integer not null , primary key (id) );
idをプライマリーキーに設定し、nameに表示したい内容を入力、delete_flgで表示の可否を設定する想定です。これを参考に適当に作ってもらえばいいです。業務で使う時はだいたいこれにバージョンと更新日時なんかが入ってるケースが多い印象です。
とりあえずテーブルは作成されましtら。次にレコードを登録します。
適当にこんな感じのinsert文を作成します。
INSERT INTO mst_test(name,delete_flg) VALUES ('テスト',0); -- 別々に実行 INSERT INTO mst_test(name,delete_flg) VALUES ('本番',0);
複数インサートする場合はこんな感じです。
INSERT INTO public.mst_test(name,delete_flg) VALUES ('テスト',0) , ('本番',0);
A5M2で確認すると、テーブルにレコードが表示されているのがわかります。
レコードが入力されていればデータベース側の作業は完了です。次に、Springboot側の処理を作成していきます。
Gradleの依存関係追加
Springbootプロジェクトのbuild.gradleに、依存関係を追加する必要があります。これを追加することで、postgreSQL、データベースへの接続などのプラグインを利用できるようになります。
build.gradleファイルのdependencies 内に、以下の依存関係の記述を追加してください。
implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
runtimeOnly 'org.postgresql:postgresql'
ついでに、lombokも追加します。
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
lombokの@dataの記述を使いたいので、これを導入します。 lombokとは?とかもっと深い使い方などについては色々調べてみてください。
保存し、記述に問題なければコンパイルが通ります。 ちなみに今のbuild.gradleファイルはこんな感じです。
plugins { id 'org.springframework.boot' version '2.6.4' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'ex.output' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter' testImplementation 'org.springframework.boot:spring-boot-starter-test' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-data-jdbc' runtimeOnly 'org.postgresql:postgresql' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' } tasks.named('test') { useJUnitPlatform() }
おわりに
長くなるので一旦ここまでにします。次回以降で取り出すところまで作ります。