【MyBatis】spring bootでDB操作をできるだけ速く簡単に作成する【自動生成】

45920 ワード

はじめに

spring boot + MyBatisDB操作をするまでを、できる限り速く、できるだけ簡単に、難しい設定もなく作りたかったので、いろいろ調べた結果を記事にしました。

  • 単純なselectinsertをするだけで、いろいろ手動で作りたくない。
  • カラム数が多いテーブルと、Modelクラスをマッピングするだけで大変。
  • この作業は、プログラムとしても単調でつまらなくて、虚無感が半端ない
  • 必要なファイルとかを自動生成するようなツールをExcelで作ってた現場あったけど、しばらくたって後任(俺)が新規テーブルを作るかーって時に動かなくなってた。投げ捨てたくなった。

ってな感じで、すごく面倒な作業をやめたかったので自動生成できるようにしたかった。

目標

  • 作成済みのテーブルからModelクラス、Mapperインターフェース、xmlファイルを自動生成。
  • DBの命名規則はsnake_case、Javaの命名規則はcamelCaseで作成されることを想定
  • 自動生成したファイルでのDB操作の動作確認
    ⇒ 自動生成分はselect , update , delete, insert の基本操作のみ想定
  • 手動で作成する分も自動生成したファイルを流用して、楽に作る

前提条件、実行環境とか

  • いろいろ設定とかあるが、できるだけシンプルでわかりやすい構成しているので、詳細はMyBatis Generator参照してください。
  • SQLはすべてXMLファイルで定義するように作ってます。
  • IDEは、STSを使ってます。
  • DB構築されていること前提にしています。今回の記事では、mySQLを利用しています。
    参考:Dockerでmysql構築
  • 下記のようなテーブルを対象に作成しています。
自動生成対象のテーブルとデータ作成
 CREATE TABLE tb_sample ( 
    id int NOT NULL AUTO_INCREMENT
    , product_name varchar (20) 
    , category_id varchar (8) 
    , PRIMARY KEY (id)
);

insert into tb_sample values(1, 'hogeA', 'A');
insert into tb_sample values(2,'hogeB', 'B');
insert into tb_sample values(3,'hogeC', 'C');
insert into tb_sample values(4,'fooA', 'A');
insert into tb_sample values(5,'fooB', 'B');
insert into tb_sample values(6,'sampleA', 'A');
insert into tb_sample values(7,'sampleB', 'C'); 

事前準備

MyBatis Generator インストール

[ヘルプ]⇒[eclipse マーケットプレイス]からMyBatis Generatorをインストール

spring boot プロジェクト作成

まだ、プロジェクトを用意していない人はここから作成