使用springboot编写图书管理系统代码
时间: 2024-01-30 19:04:06 浏览: 71
好的,这里提供一个简单的Spring Boot图书管理系统的代码示例,仅供参考:
首先,定义实体类Book:
```java
@Entity
@Table(name = "book")
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@NotBlank
private String title;
@NotBlank
private String author;
@NotNull
private Integer year;
@NotNull
private Integer total;
@NotNull
private Integer borrowed;
// 省略getter和setter方法
}
```
然后,定义数据访问层接口BookRepository:
```java
@Repository
public interface BookRepository extends JpaRepository<Book, Long> {
List<Book> findByTitleContaining(String title);
}
```
接着,定义业务逻辑层接口BookService:
```java
public interface BookService {
List<Book> getAllBooks();
Book getBookById(Long id);
Book addBook(Book book);
Book updateBook(Long id, Book book);
void deleteBook(Long id);
List<Book> searchBooks(String title);
}
```
实现业务逻辑层BookServiceImpl:
```java
@Service
public class BookServiceImpl implements BookService {
@Autowired
private BookRepository bookRepository;
@Override
public List<Book> getAllBooks() {
return bookRepository.findAll();
}
@Override
public Book getBookById(Long id) {
return bookRepository.findById(id).orElseThrow(() -> new NotFoundException("Book not found"));
}
@Override
public Book addBook(Book book) {
book.setId(null);
return bookRepository.save(book);
}
@Override
public Book updateBook(Long id, Book book) {
Book oldBook = getBookById(id);
oldBook.setTitle(book.getTitle());
oldBook.setAuthor(book.getAuthor());
oldBook.setYear(book.getYear());
oldBook.setTotal(book.getTotal());
oldBook.setBorrowed(book.getBorrowed());
return bookRepository.save(oldBook);
}
@Override
public void deleteBook(Long id) {
Book book = getBookById(id);
bookRepository.delete(book);
}
@Override
public List<Book> searchBooks(String title) {
return bookRepository.findByTitleContaining(title);
}
}
```
最后,定义控制器BookController:
```java
@RestController
@RequestMapping("/books")
public class BookController {
@Autowired
private BookService bookService;
@GetMapping
public ResponseEntity<List<Book>> getAllBooks() {
List<Book> books = bookService.getAllBooks();
return ResponseEntity.ok(books);
}
@GetMapping("/{id}")
public ResponseEntity<Book> getBookById(@PathVariable Long id) {
Book book = bookService.getBookById(id);
return ResponseEntity.ok(book);
}
@PostMapping
public ResponseEntity<Book> addBook(@RequestBody Book book) {
Book newBook = bookService.addBook(book);
return ResponseEntity.ok(newBook);
}
@PutMapping("/{id}")
public ResponseEntity<Book> updateBook(@PathVariable Long id, @RequestBody Book book) {
Book updatedBook = bookService.updateBook(id, book);
return ResponseEntity.ok(updatedBook);
}
@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteBook(@PathVariable Long id) {
bookService.deleteBook(id);
return ResponseEntity.noContent().build();
}
@GetMapping("/search")
public ResponseEntity<List<Book>> searchBooks(@RequestParam String title) {
List<Book> books = bookService.searchBooks(title);
return ResponseEntity.ok(books);
}
}
```
这个示例实现了基本的增删改查和搜索功能,您可以根据实际需求进行调整和扩展。希望能够对您有所帮助。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)