借阅模块开发

本章节主要完成功能接口的实现,相比于第 16 章的开发,因为这里使用的数据持久层框架不同,所以程序的实现也是不同的。通过本小节的学习将会发现,在项目中,不同的框架,开发效率也不同。

实体类

在实体类中,因为不存在类似于 MyBatis 的 XML 映射文件,所以我们需要按照 JPA 的需求写实体类,代码如下所示。

package com.exampletwo.brrow.entity;
@Entity
@Table(name = "broowing")
public class Broowing {
   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   private int uuid;
   @Column(name="book_ename",length = 32)
   private String bookEname;
   @Column(name="book_cname",length = 32)
   private String bookCname;
   @Column(name="book_quantity",length = 32)
   private int bookQuantity;
   @Column(name="start_time")
   private Date startTime;
   @Column(name="end_time")
   private Date endTime;
//SET和GET方法省略
}

Repository接口

在 JPA 中,需要写对应的接口。查询所有接口如下。

package com.exampletwo.brrow.dao;
public interface BrrowRepository extends JpaRepository<Broowing,Integer> {
   //查询所有对象
   public List<Broowing> findAll();
}

Service层

按照业务开发的需求,添加 Service 层,以便对数据进行部分操作。查询所有数据的 Service 层如下。

package com.exampletwo.brrow.service;
@Service
public class BroowingService {
   @Autowired
   private BrrowRepository brrowRepository;
   //查询所有对象
   public List<Broowing> findAll(){
      return brrowRepository.findAll();
   }
}

Controller层

对于 Controller 层,是前台页面与后台进行交互的接口,是 Restful 接口。查询所有图书接口如下。

package com.exampletwo.brrow.controller;
@RestController
public class BrrowController {
   @Autowired
   private BroowingService broowingService;
   //查询所有对象
   @RequestMapping("/book/queryAllBook")
   public List<Broowing> findAll(){
      return broowingService.findAll();
   }
}

接口测试

目前的数据库数据如图17.5所示。

image 2024 04 01 16 14 28 222
Figure 1. 图17.5 数据库数据

对所有图书接口进行测试,访问链接 http://localhost:8091/book/queryAllBook ,测试结果如图17.6所示。

image 2024 04 01 16 14 52 972
Figure 2. 图17.6 测试结果