★学习目标:
1、掌握云借阅系统的借阅记录
★思考任务:
1、借阅记录有那些主要功能?
★任务学习:
★知识要点:
系统设定图书借阅是指从借阅到归还确认后的一次完整借阅,借阅记录主要是记录系统用户每次的完整借阅情况。借阅记录包含新增借阅记录和查询借阅记录2个功能,其中,借阅记录在归还确认时新增,查询借阅记录分为全部查询和按条件查询。
1、新增借阅记录
step 1:创建持久化类:在com.itheima.domain包中,创建借阅记录类Record,在Record 类中声明与借阅记录数据表对应的属性并定义各个属性的getter/setter方法。
public class Record implements Serializable {
private Integer id; // 图书借阅id
private String bookname; // 借阅的图书名称
private String bookisbn; // 借阅的图书的ISBN编号
private String borrower; // 图书借阅人
private String borrowTime; // 图书借阅时间
private String remandTime; // 图书归还时间
…getter/setter方法
step 2:实现DAO层:(1)在com.itheima.dao包中,创建一个Record接口,并在接口中定义方法addRecord()用于新增借阅记录操作。
package com.itheima.mapper;
import com.itheima.domain.Record;
public interface RecordMapper {
//新增借阅记录
Integer addRecord(Record record);
}
(2)在resources文件夹的com\itheima\mapper文件夹下创建RecordMapper接口同名的映射文件RecordMapper.xml,在映射文件中使用<insert>元素编写新增借阅记录的语句。
<mapper namespace="com.itheima.mapper.RecordMapper">
<insert id="addRecord">
insert into record( record_id,record_bookname,record_bookisbn,
record_borrower,record_borrowtime,record_remandtime)
values(
#{id},#{bookname},#{bookisbn},#{borrower},
#{borrowTime},#{remandTime})
</insert>
</mapper>
step 3:实现Service层:(1)在com.itheima.service包中,创建Service层的借阅记录接口RecordService ,在RecordService接口中定义新增借阅记录的方法addRecord()。
package com.itheima.service;
import com.itheima.domain.Record;
public interface RecordService {
//新增借阅记录
Integer addRecord(Record record);
}
(2)在com.itheima.service.impl包中,创建Service层的借阅记录接口的实现类RecordServiceImpl,在RecordServiceImpl类中重写RecordService接口中的addRecord()方法。
@Override
public Integer addRecord(Record record) {
return recordMapper.addRecord(record);
}
step 4:在步骤3代码的中新增的借阅记录的对象由图书归还确认时创建,图书归还确认无误后,调用RecordService的addRecord()方法新增借阅记录。
修改BookServiceImpl类中的returnConfirm()方法,在returnConfirm()方法执行归还确认无误时,设置借阅记录信息,并且调用RecordService的addRecord()方法新增借阅记录。至此,借阅记录模块的新增借阅记录的功能已经完成。
2、查询借阅记录
step 1: 在借阅记录页面record.jsp中,可以根据查询条件借阅人和图书名称来查询对应的借阅记录,其中根据借阅人查询借阅记录是管理员才有的权限。如果查询条件为空,则忽略查询条件查询所有借阅记录。
实现DAO层:在文件RecordMapper接口中新增searchRecords()方法用于查询借阅记录的。(省略)
step 2:实现Service层:(1)在RecordService接口中,添加查询借阅记录的方法,具体代码如下所示。
PageResult searchRecords(
Record record,
User user,
Integer pageNum,
Integer pageSize);
(2)在RecordServiceImpl类中重写RecordService接口中的searchRecords()方法,具体代码如下所示。
public PageResult searchRecords(Record record, User user,
Integer pageNum, Integer pageSize) {
// 设置分页查询的参数,开始分页
PageHelper.startPage(pageNum, pageSize);
//如果不是管理员,则查询条件中的借阅人设置为当前登录用户
if(!"ADMIN".equals(user.getRole())){
record.setBorrower(user.getName());
}
Page<Record> page= recordMapper.searchRecords(record);
return new PageResult(page.getTotal(),page.getResult());
}
step 3: 实现Controller:在com.itheima.controller包中,创建借阅记录控制器类RecordController,在该类中定义方法searchRecords()用于查询借阅记录,并将查询结果响应到借阅记录的页面 。(省略)
step 4:实现页面效果:在后台首页main.jsp的导航侧栏中,配置“借阅记录”超链接的目标路径。配置代码如下所示。
<li >
<a href="${pageContext.request.contextPath}/record/searchRecords"
target="iframe">
<i class="fa fa-circle-o"></i>借阅记录
</a>
</li>
step 5:,测试借阅记录的添加借阅记录和查询借阅记录的功能。启动项目,使用普通用户借阅2本图书,借阅完成后单击导航侧栏中“当前借阅”,如图所示。


