LoginSignup
1
1

More than 1 year has passed since last update.

#20 Spring Mybatisを利用したデータベース操作[1. 環境構築、テーブル作成]

Last updated at Posted at 2022-11-27

#20 Spring Mybatisを利用したデータベース操作[1. 環境構築、テーブル作成]

この記事ではMybatisの環境構築とOracleDBを用いたテーブルの作成を行います。

前提条件

この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。

前回まで

前回の記事ではOracleデータベースの接続設定を行いました。

構築環境

  1. 各バージョン
    Spring Boot ver 2.7.5
    mybatis-spring-boot-starter ver 2.2.2
    Model Mapper ver 3.1.0
    jquery ver 3.6.1
    bootstrap ver 5.2.2
    webjars-locator ver 0.46
    thymeleaf-layout-dialect ver 3.0.0

  2. 依存関係
    image.png

成果物

今回行うこと

今回は以下の流れに沿って進めていきます。

  1. MyBatisとは
  2. MyBatisとModelMapperのダウンロード
  3. application.propertiesに追加の記述
  4. テーブルの追加
     1. M_USER
     2. M_PRODUCT
     3. T_PURCHASE
     4. T_STOCK

1. MyBatisとは

MyBatisとは高度な機能が用意されたO/Rマッパーです。O/RマッパーとはJavaクラス(オブジェクト)と、データベースをマッピングするフレームワークです。ObjectとRelation(テーブル)をマッピングするため、O/Rマッパーと呼ばれます。

MyBatisはObjectとSQLをxmlファイルを用いてマッピングします。xmlファイル意外にもSQLを書くことはできますが、管理の点からあまり使用されないそうです。

2. MyBatisとModelMapperのダウンロード

MyBatisとModelMapperの両方をダウンロードするにはpom.xmlに以下の内容を記述します。

pom.xml
        <!--省略-->

		<!-- MyBatis -->
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.2.2</version>
		</dependency>
		<!-- Model Mapper -->
		<dependency>
			<groupId>org.modelmapper.extensions</groupId>
			<artifactId>modelmapper-spring</artifactId>
			<version>3.1.0</version>
		</dependency>

        <!--省略-->

Model Mapper:インスタンスの内容をコピーするライブラリ

3. application.propertiesに追加の記述

1. MyBatisとはで説明したようにSQLはxmlファイルに記述します。その記述するファイル場所をapplication.properties記載します。
また、logging.level.パッケージ名=ログレベルを指定することができます。下記コードではcom.exampleパッケージ内のログレベルをdebugに変更しています。これによりMybatisなどのログが出力されます。

application.properties

# 省略

# MyBatis
mybatis.mapper-locations=classpath*:mapper/*.xml

# Log Level
logging.level.com.example=debug

4. テーブルの追加

ここではテーブルと初期データの追加を行います。
今回は以下の4つのテーブルを作成します。

この記事を書いている本人はテーブル作成に関してあまり知識がないのでこのテーブルの書き方で合っているか微妙です。

1. M_USER

ユーザー情報を持ったマスタテーブル

  • USER_IDを主キー
  • USER_NAMEとPASSWORDをNOT NULL
  • ACCOUNT_ICONの属性をBLOB型(後で変更する可能性有り)
    image.png

2. M_PRODUCT

商品情報を持ったマスタテーブル

  • PRODUCT_IDを主キー
  • PRODUCT_NAMEとPRODUCT_PRICEEをNOT NULL
    image.png

3. T_PURCHASE

どのユーザーがどの商品をいつ、何個購入したか記録するトランザクションテーブル

  • USER_IDとPRODUCT_IDを主キー(複合主キー)⇒これが正しいか不明(ごめんなさい)
  • COUNTとPURCHASE_DATEをNOT NULL
    image.png

4. T_STOCK

商品の在庫数を記録するトランザクションテーブル

  • PRODUCT_IDを主キー
  • PRODUCT_STOCKをNOT NULL
    image.png

最後に

今回は環境構築とテーブルの作成を行いました。
今後はSQLを用いたデータの変更等を行っていきます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1