IT初学者部

プログラミングに関することを中心に、備忘録として残していきます。

Spring bootプロジェクトでDBからレコードを取り出す。(データベース作成~gradleの準備まで-前編-)

はじめに

前回の記事で、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で確認すると、テーブルにレコードが表示されているのがわかります。

f:id:hirm159:20220320194946p:plain

レコードが入力されていればデータベース側の作業は完了です。次に、Springboot側の処理を作成していきます。

Gradleの依存関係追加

Springbootプロジェクトのbuild.gradleに、依存関係を追加する必要があります。これを追加することで、postgreSQL、データベースへの接続などのプラグインを利用できるようになります。

build.gradleファイルのdependencies 内に、以下の依存関係の記述を追加してください。

implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
runtimeOnly 'org.postgresql:postgresql'

ついでに、lombokも追加します。

projectlombok.org

compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

lombokの@dataの記述を使いたいので、これを導入します。 lombokとは?とかもっと深い使い方などについては色々調べてみてください。

blog.y-yuki.net

保存し、記述に問題なければコンパイルが通ります。 ちなみに今の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()
}

おわりに

長くなるので一旦ここまでにします。次回以降で取り出すところまで作ります。