🦁

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

に公開

🧩 今回の目的

멋쟁이사자처럼(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