S SmartDocs
系列: Springboot java 30 行 · 更新於 2026-08-14

UserRepository.java

Springboot/bookstore-api/src/main/java/com/example/bookstore/repository/UserRepository.java

package com.example.bookstore.repository;

import com.example.bookstore.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.Optional;

/**
 * 使用者 Repository(資料存取層)。
 * 繼承 JpaRepository 後即可免費獲得 save / findById / findAll 等方法,
 * 下方再依需求宣告「衍生查詢」。
 */
public interface UserRepository extends JpaRepository<User, Long> {

    /**
     * 依帳號查詢使用者。
     * 產生 SQL:SELECT * FROM users WHERE username = ?
     *
     * 回傳 Optional<User>:
     * 明確表達「可能查不到」,呼叫端必須處理查無資料的情況
     * (例如 orElseThrow),可避免 NullPointerException。
     */
    Optional<User> findByUsername(String username);

    /** 註冊時檢查帳號是否已被使用 */
    boolean existsByUsername(String username);

    /** 註冊時檢查 Email 是否已被使用 */
    boolean existsByEmail(String email);
}

相關文章

Springboot java EN 更新於 2026-08-14

BookstoreApiApplication.java

BookstoreApiApplication.java — java source code from the Springboot learning materials (Springboot/bookstore-api/src/main/java/com/example/bookstore/BookstoreApiApplication.java).

閱讀文章 →
Springboot java EN 更新於 2026-08-14

DataInitializer.java

DataInitializer.java — java source code from the Springboot learning materials (Springboot/bookstore-api/src/main/java/com/example/bookstore/config/DataInitializer.java).

閱讀文章 →
Springboot java EN 更新於 2026-08-14

SecurityConfig.java

SecurityConfig.java — java source code from the Springboot learning materials (Springboot/bookstore-api/src/main/java/com/example/bookstore/config/SecurityConfig.java).

閱讀文章 →
Springboot java EN 更新於 2026-08-14

AuthController.java

AuthController.java — java source code from the Springboot learning materials (Springboot/bookstore-api/src/main/java/com/example/bookstore/controller/AuthController.java).

閱讀文章 →
Springboot java EN 更新於 2026-08-14

BookController.java

BookController.java — java source code from the Springboot learning materials (Springboot/bookstore-api/src/main/java/com/example/bookstore/controller/BookController.java).

閱讀文章 →
Springboot java EN 更新於 2026-08-14

ApiErrorResponse.java

ApiErrorResponse.java — java source code from the Springboot learning materials (Springboot/bookstore-api/src/main/java/com/example/bookstore/dto/ApiErrorResponse.java).

閱讀文章 →