Spring BootとVue.jsを用いたアパレル情報管理システムの設計と実装

技術概要

本システムは、Spring Boot(バックエンド)、Vue.js(フロントエンド)、MyBatis(データアクセス層)を統合して構築されたアパレル商品情報管理システムです。Spring Bootによる簡潔なAPI設計、Vue.jsによるリアクティブなUI、MyBatisによる柔軟なデータベース操作を通じて、効率的かつスケーラブルなアプリケーション構築を実現します。

バックエンド:Spring Boot

Spring Bootは、内蔵Webサーバーと自動構成機能を備えたJavaベースのフレームワークです。これにより、設定の手間を省き、迅速な開発が可能になります。

以下は、Spring Bootの基本的なアプリケーション構成例です:


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication
public class AppMain {
    public static void main(String[] args) {
        SpringApplication.run(AppMain.class, args);
    }

    @GetMapping("/api/status")
    public String statusCheck() {
        return "System is running";
    }
}

フロントエンド:Vue.js

Vue.jsは、仮想DOMとリアクティブデータバインディングを活用した軽量で柔軟なJavaScriptフレームワークです。

以下のコードは、Vue.jsによるシンプルなUI操作の例です:


<div id="app">
  <p>{{ message }}</p>
  <button @click="updateMessage">メッセージ更新</button>
</div>

<script>
new Vue({
  el: '#app',
  data: {
    message: '初期メッセージ'
  },
  methods: {
    updateMessage() {
      this.message = '更新されたメッセージ';
    }
  }
});
</script>

データアクセス層:MyBatis

MyBatisは、SQLとJavaオブジェクトをマッピングする永続化フレームワークです。動的SQLのサポートにより、柔軟なクエリ構築が可能です。

以下は、商品情報を取得するMyBatis Mapperの例です:


public interface ProductMapper {
    @Select("SELECT * FROM product WHERE id = #{id}")
    Product selectById(Long id);

    @Select("SELECT * FROM product")
    List<Product> selectAll();
}

システムテスト

本システムでは、主にブラックボックステストを用いて、主要な機能の動作検証を実施しました。

ログイン機能のテスト

入力値 期待結果 実測結果 分析
ユーザー名:admin、パスワード:valid123 ログイン成功 成功 一致
ユーザー名:admin、パスワード:invalid ログイン失敗 失敗 一致

商品管理機能のテスト

商品の追加、編集、削除機能についても同様にテストケースを設計し、検証を行いました。

データベース設計

商品情報を管理するためのテーブル構造は以下の通りです:


CREATE TABLE product (
  id BIGINT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(100) NOT NULL,
  price DECIMAL(10, 2) NOT NULL,
  description VARCHAR(200),
  stock INT NOT NULL,
  create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品情報テーブル';

サンプルデータ挿入:


INSERT INTO product (name, price, description, stock)
VALUES ('シャツA', 299.99, 'ビジネス向け長袖シャツ', 200);

タグ: Spring Boot vue.js MyBatis Java MySQL

6月19日 16:43 投稿