「Spring Bootは気になるけど難しそう」
「業務システムって何から作ればいいの?」
そんな悩みをお持ちの方へ。
本記事では、Java×Spring Bootで業務用の在庫管理システムを一から構築する手順を、
初心者でもわかるように解説します。
MySQLとの連携やデータの保存処理も含めて、現場でも通用する基本的な作り方を学べます。
Spring Bootでできることとは?
業務システムに求められる要素を満たせます
結論:Spring Bootを使うと、効率よく安全に業務アプリが作れます。
業務システムに必要な要素は以下の通りです:
- データの登録・編集・削除(CRUD機能)
- データベースとの接続(MySQLなど)
- 安定したルーティング構造
- コードの再利用性と保守性
Spring Bootは、こうした要素を短時間で構築できる仕組みが揃っています。
政府の情報システム構築標準でも、堅牢で保守性の高い設計が求められています。
(参考:デジタル庁 https://www.digital.go.jp/policies/cloud-by-default/)
プロジェクト構成と準備
まずはSpring Initializrでプロジェクトを生成します
結論:公式サイトで基本構成を作成し、MySQL接続を設定します。
準備手順:
- https://start.spring.io/ にアクセス
- 以下の設定を選択:
- Project: Maven
- Language: Java
- Dependencies: Spring Web, Spring Data JPA, MySQL Driver
- ダウンロード後、任意のIDE(例:IntelliJ、VSCode)で展開
次に、application.properties
を下記のように設定します。
spring.datasource.url=jdbc:mysql://localhost:3306/inventory_db
spring.datasource.username=root
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
データベースとエンティティ設計
MySQLのテーブルとJavaクラスを対応させます
結論:テーブル構造に合わせてJavaクラスを作成します。
例:商品テーブル「products」
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
price INT
);
エンティティクラス(Product.java)
import jakarta.persistence.*;
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public int id;
public String name;
public int price;
}
データ操作の実装:リポジトリとコントローラ
商品情報を一覧・登録・削除できるようにします
結論:JPAの機能を使えば、SQLを書かずに操作できます。
リポジトリインターフェース(ProductRepository.java)
import org.springframework.data.jpa.repository.JpaRepository;
public interface ProductRepository extends JpaRepository<Product, Integer> {}
コントローラ(ProductController.java)
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/products")
public class ProductController {
@Autowired
private ProductRepository repo;
@GetMapping
public List<Product> list() {
return repo.findAll();
}
@PostMapping
public Product add(@RequestBody Product p) {
return repo.save(p);
}
@DeleteMapping("/{id}")
public void delete(@PathVariable int id) {
repo.deleteById(id);
}
}
躓きやすいエラーと解決策
よくあるエラーとその直し方を紹介します
- エラー:Unknown database ‘inventory_db’
→ 対策:MySQLにログインし、CREATE DATABASE inventory_db;
を実行する - エラー:Access denied for user ‘root’@’localhost’
→ 対策:application.properties
のパスワード・ユーザー名が正しいか確認する - エラー:Entityクラスが認識されない
→ 対策:@EntityScan
アノテーションや正しいパッケージ構成を確認する
応用機能と発展例
業務レベルの要件にも対応可能です
以下のような追加機能も簡単に実装可能です:
- 更新機能(
PUT
メソッドの追加) - 入力値チェック(
@Valid
とバリデーション注釈) - ログイン機能(Spring Security)
- ページネーション対応(
Pageable
利用)
完成構成のまとめ
src/
├─ Product.java
├─ ProductRepository.java
├─ ProductController.java
└─ application.properties
動作確認URL例:
- GET http://localhost:8080/products
- POST http://localhost:8080/products
- DELETE http://localhost:8080/products/{id}
まとめ:業務システムは自作できる
本記事では、JavaとSpring BootでMySQL連携の業務システムを構築する方法を解説しました。
学べたこと:
- Spring Bootのプロジェクト構成と起動方法
- JPAでのDB操作
- REST APIの基本実装
今後さらに発展させることで、実務にも使えるレベルのアプリ開発が可能になります。
ぜひ、自分仕様の業務システムを構築してみてください!