2117847720qq

导航

3.19

学习与实践内容
今天聚焦后端功能实现,使用 Spring MVC 开发 RESTful API。首先创建BookController处理图书管理请求:
java
// BookController.java
@RestController
@RequestMapping("/api/books")
public class BookController {

@Autowired
private BookService bookService;

@GetMapping
public List<Book> getAllBooks() {
    return bookService.getAllBooks();
}

@PostMapping
public Book addBook(@RequestBody Book book) {
    return bookService.addBook(book);
}

@PutMapping("/{id}/status")
public Book updateBookStatus(@PathVariable Long id, @RequestParam Integer status) {
    return bookService.updateBookStatus(id, status);
}

}
在BookService中实现业务逻辑,包括事务管理和异常处理:
java
// BookServiceImpl.java
@Service
public class BookServiceImpl implements BookService {

@Autowired
private BookRepository bookRepository;

@Override
@Transactional
public Book borrowBook(Long bookId, Long userId) {
    Book book = bookRepository.findById(bookId)
        .orElseThrow(() -> new BookNotFoundException("Book not found"));
        
    if (book.getStatus() != 0) {
        throw new BookNotAvailableException("Book is not available for borrowing");
    }
    
    book.setStatus(1);
    // 记录借阅信息到BorrowRecord表
    borrowRecordService.createRecord(bookId, userId);
    
    return bookRepository.save(book);
}

}
使用 MyBatis 实现数据访问层,通过 XML 映射文件定义 SQL 查询:
xml

INSERT INTO books (title, author, isbn, status) VALUES (#{title}, #{author}, #{isbn}, #{status})

学习收获
掌握 Spring MVC 控制器开发和 RESTful API 设计规范,理解 Service 层业务逻辑封装和事务管理。学会使用 MyBatis 实现数据库操作,掌握 XML 映射文件配置方法。
学习反思
在实现复杂业务逻辑时,Service 层代码变得冗长,需要进一步优化设计模式。对 MyBatis 高级特性如二级缓存、插件机制了解不足,后续需深入学习。

posted on 2025-03-19 23:11  我爱玩原神(原神大王)  阅读(8)  评论(0)    收藏  举报