🦁

[LikeLion Backend] Week 2|Spring Bootを用いたユーザーCRUD機能の実装(JPA未使用)

2025/04/14に公開

🧩 今回の目的

멋쟁이사자처럼(LikeLion)2025年度バックエンドトラックの2週目では、
Spring Bootを用いたRESTfulなユーザー管理APIの構築を行いました。
この週は、まだJPAなどの本格的なDB連携は行わず、メモリ上のリスト(List<User>)を仮想DBとして使用しています。


🌱 今回学んだ内容

  • Spring Bootプロジェクトの基本構造(Controller / Service / Repository / Domain)
  • REST API設計(@GetMapping, @PostMapping, @PutMapping, @DeleteMapping
  • ResponseEntityを用いたHTTPレスポンス制御
  • Optional<User>を用いたnull安全な処理
  • SpringのDI(依存性注入)構造の理解

🔧 実装機能

機能 内容
Create POST /users:ユーザー新規作成
Read (All) GET /users:すべてのユーザー一覧を取得
Read (One) GET /users/{id}:特定IDのユーザー情報を取得
Update PUT /users/{id}:特定IDのユーザー情報を更新
Delete DELETE /users/{id}:特定IDのユーザー情報を削除

📁 ディレクトリ構成(簡易)

Week02/
├── SpringPrac/
│   ├── build.gradle
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/com/likelion/springprac/
│   │   │   │   ├── controller/UserController.java
│   │   │   │   ├── service/UserService.java
│   │   │   │   ├── repository/UserRepository.java
│   │   │   │   └── domain/User.java
│   │   │   └── resources/application.properties
│   └── sql/
│       ├── create_tables.sql
│       ├── insert_data.sql
│       └── select_join.sql

📌 補足事項

  • DB連携は未実装(JPA未使用)
  • UserRepository は List<User> を使って、IDの自動採番と基本的なCRUD操作を実装
  • UserService では、Optional.orElseThrow() や nullチェックによる例外処理を追加
  • SQLはMySQL構文に基づいており、user テーブル名の代わりに予約語回避のため users を使用

💻 GitHubリポジトリ

Week02のコードを見る


✍️ 今後の展望

次週以降は、JPAを使用したデータベース連携, H2やMySQLとの接続,
認証処理(Spring Security)やバリデーション処理などへと進んでいきます。

バックエンドシステムの構築に必要な技術を段階的に学び、
最終的にはAIプロダクトに接続可能な堅牢なバックエンドAPIを設計・実装することを目指しています。

Discussion