springboot简单实现两表的图书管理系统
时间: 2023-06-29 13:20:03 浏览: 53
好的,我可以为您介绍一下如何使用 Spring Boot 实现简单的两表图书管理系统。
首先,我们需要创建两个数据库表:book 和 category。book 表包含书籍的信息,如书名、作者和价格等。category 表则包含书籍的分类信息,如文学、历史和科技等。
接下来,我们可以使用 Spring Boot 来创建一个 RESTful API,用于查询、添加、更新和删除书籍信息。我们可以使用 Spring Data JPA 来简化数据库操作。
具体实现步骤如下:
1. 创建一个 Spring Boot 项目,并添加以下依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
```
2. 定义 Book 和 Category 实体类,并使用 Spring Data JPA 注解进行映射:
```
@Entity
@Table(name = "book")
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String author;
private BigDecimal price;
@ManyToOne
@JoinColumn(name = "category_id")
private Category category;
// getters and setters
}
@Entity
@Table(name = "category")
public class Category {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
// getters and setters
}
```
3. 创建 BookRepository 和 CategoryRepository 接口,继承 JpaRepository 接口,用于实现对数据库的操作:
```
public interface BookRepository extends JpaRepository<Book, Long> {
}
public interface CategoryRepository extends JpaRepository<Category, Long> {
}
```
4. 创建 BookService 和 CategoryService 类,用于实现业务逻辑:
```
@Service
public class BookService {
@Autowired
private BookRepository bookRepository;
public List<Book> findAll() {
return bookRepository.findAll();
}
public Book findById(Long id) {
return bookRepository.findById(id).orElse(null);
}
public Book save(Book book) {
return bookRepository.save(book);
}
public void delete(Long id) {
bookRepository.deleteById(id);
}
}
@Service
public class CategoryService {
@Autowired
private CategoryRepository categoryRepository;
public List<Category> findAll() {
return categoryRepository.findAll();
}
public Category findById(Long id) {
return categoryRepository.findById(id).orElse(null);
}
public Category save(Category category) {
return categoryRepository.save(category);
}
public void delete(Long id) {
categoryRepository.deleteById(id);
}
}
```
5. 创建 BookController 和 CategoryController 类,用于处理 HTTP 请求:
```
@RestController
@RequestMapping("/books")
public class BookController {
@Autowired
private BookService bookService;
@GetMapping("")
public List<Book> findAll() {
return bookService.findAll();
}
@GetMapping("/{id}")
public Book findById(@PathVariable Long id) {
return bookService.findById(id);
}
@PostMapping("")
public Book create(@RequestBody Book book) {
return bookService.save(book);
}
@PutMapping("/{id}")
public Book update(@PathVariable Long id, @RequestBody Book book) {
Book oldBook = bookService.findById(id);
if (oldBook == null) {
return null;
}
oldBook.setName(book.getName());
oldBook.setAuthor(book.getAuthor());
oldBook.setPrice(book.getPrice());
oldBook.setCategory(book.getCategory());
return bookService.save(oldBook);
}
@DeleteMapping("/{id}")
public void delete(@PathVariable Long id) {
bookService.delete(id);
}
}
@RestController
@RequestMapping("/categories")
public class CategoryController {
@Autowired
private CategoryService categoryService;
@GetMapping("")
public List<Category> findAll() {
return categoryService.findAll();
}
@GetMapping("/{id}")
public Category findById(@PathVariable Long id) {
return categoryService.findById(id);
}
@PostMapping("")
public Category create(@RequestBody Category category) {
return categoryService.save(category);
}
@PutMapping("/{id}")
public Category update(@PathVariable Long id, @RequestBody Category category) {
Category oldCategory = categoryService.findById(id);
if (oldCategory == null) {
return null;
}
oldCategory.setName(category.getName());
return categoryService.save(oldCategory);
}
@DeleteMapping("/{id}")
public void delete(@PathVariable Long id) {
categoryService.delete(id);
}
}
```
6. 运行应用程序,并访问以下 URL 来测试 API:
- 查询所有书籍:GET /books
- 查询单个书籍:GET /books/{id}
- 添加书籍:POST /books
- 更新书籍:PUT /books/{id}
- 删除书籍:DELETE /books/{id}
- 查询所有分类:GET /categories
- 查询单个分类:GET /categories/{id}
- 添加分类:POST /categories
- 更新分类:PUT /categories/{id}
- 删除分类:DELETE /categories/{id}
以上就是使用 Spring Boot 实现简单的两表图书管理系统的步骤。希望对您有帮助!