好的,下面是一个完整的示例,包括 `BookController`、`BookService` 接口及其实现类 `BookServiceImpl`,以及 `BookMapper`。 1. 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 { private final BookService bookService; @Autowired public BookController(BookService bookService) { this.bookService = bookService; } @GetMapping("/all") public List<Book> findAll() { return bookService.findAll(); } } ``` 2. BookService.java ```java import java.util.List; public interface BookService { List<Book> findAll(); } ``` 3. 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 { private final BookMapper bookMapper; @Autowired public BookServiceImpl(BookMapper bookMapper) { this.bookMapper = bookMapper; } @Override public List<Book> findAll() { return bookMapper.findAll(); } } ``` 4. BookMapper.java 假设你使用的是 MyBatis 作为 ORM 框架: ```java import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import java.util.List; @Mapper public interface BookMapper { @Select("SELECT * FROM books") List<Book> findAll(); } ``` 5. Book.java (实体类) ```java public class Book { private Long id; private String title; private String author; private String isbn; // Getters and Setters public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getIsbn() { return isbn; } public void setIsbn(String isbn) { this.isbn = isbn; } } ``` 6. application.properties (数据库配置) 确保在 `application.properties` 文件中配置了数据库连接信息: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name spring.datasource.username=your_username spring.datasource.password=your_password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver mybatis.mapper-locations=classpath:mapper/*.xml ``` 7. 创建 MyBatis 映射文件 (可选) 如果你使用 MyBatis XML 映射文件,可以创建一个 `BookMapper.xml` 文件: ```xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.demo.mapper.BookMapper"> <select id="findAll" resultType="com.example.demo.model.Book"> SELECT * FROM books </select> </mapper> ``` 以上代码展示了如何创建一个简单的 Spring Boot 应用,其中包含一个控制器、服务层和数据访问层,用于查询所有书籍并返回 JSON 格式的数据。 [2024-12-09 10:30:34 | AI写代码神器 | 1036点数解答]