BookController.java ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController @RequestMapping("/books") public class BookController { @Autowired private BookService bookService; @GetMapping public List<Book> findAll() { return bookService.findAll(); } } ``` BookService.java ```java import java.util.List; public interface BookService { List<Book> findAll(); } ``` BookServiceImpl.java ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class BookServiceImpl implements BookService { @Autowired private BookMapper bookMapper; @Override public List<Book> findAll() { return bookMapper.findAll(); } } ``` BookMapper.java ```java import java.util.List; import org.apache.ibatis.annotations.Select; public interface BookMapper { @Select("SELECT * FROM books") List<Book> findAll(); } ``` 额外注意事项 1. 确保 `Book` 实体类已经定义好,包含 `id`, `title`, `author`, `price`, `stock` 属性,并且有相应的 getter 和 setter 方法。 2. 在 `application.properties` 或 `application.yml` 中配置好数据库连接信息,确保应用能够正确连接到数据库。 3. 如果项目使用了事务管理,可以在 `BookServiceImpl` 类上添加 `@Transactional` 注解,以确保数据操作的原子性。 [2024-12-13 08:41:55 | AI写代码神器 | 340点数解答]