「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
を下記のように設定します。
1 2 3 4 5 | 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」
1 2 3 4 5 | CREATE TABLE products ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), price INT ); |
エンティティクラス(Product.java)
1 2 3 4 5 6 7 8 9 10 11 | 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)
1 2 3 | import org.springframework.data.jpa.repository.JpaRepository; public interface ProductRepository extends JpaRepository<Product, Integer> {} |
コントローラ(ProductController.java)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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
利用)
完成構成のまとめ
1 2 3 4 5 | 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の基本実装
今後さらに発展させることで、実務にも使えるレベルのアプリ開発が可能になります。
ぜひ、自分仕様の業務システムを構築してみてください!