一、项目分析
1、项目功能分析
项目功能模块主要分为三个模块,登录模块、管理员模块、操作员模块。
登录模块包括登录功能,注册功能,登录日志功能,修改密码以及找回密码。
管理员模块包括工作日志功能、图书借阅金额设定、操作员管理功能、图书借阅逾期账单。
操作员模块包括基础信息维护功能,对图书类别、读者类型、罚金进行增删改查的操作,图书信息管理功能是对图书信息的增删改查,读者信息管理功能对读者信息的增删改查,图书借阅管理功能包括图书的借阅,图书的归还以及图书借阅记录的查询。以上就是整个项目的主体功能结构,理清楚需求与结构后,便着手了项目的说明文档。
2、说明文档
说明文档主要从概要设计说明、软件需求说明、接口设计说明、数据库设计说明四个方便对项目的结构,需求,具体的接口,数据库进行全面的规划设计,保证了代码编写的依据性以及合理性。
概要设计说明对项目编写的背景、需求分析、程序运行的流程、功能结构、接口设计、数据库设计以及程序运行出错后的处理方案进行了总体的描述与规划。
软件需求说明是对整个程序进行了具体的需求分析,包括了项目整体的结构图,流程图,ER设计图,为项目的进行和程序的编写提供了方向。
接口设计说明是程序对数据库访问的具体方法的接口设计,接口设计清楚了就能更快速的进行对数据的处理与使用。
数据库设计说明主要是对数据库进行具体的数据表设计,根据软件的具体需求来设计相应的数据表,存放软件产生的数据。
二、项目实现
项目编写严格按照了三层架构的标准来设计同时具体体现了简单工厂的设计模式。从Dao类的设计到实体层再到业务逻辑成最后到页面设计,整体的结构清晰明了。然后展示一些代码吧,满满的成就感!
图书借阅Dao:
public interface BookBorrowAndReturnDao {
//查询所有借阅记录
List<BookBorrowAndReturn> selectAllBorrow(Connection conn);
//添加一条借阅记录
void addborrow(Connection conn, BookBorrowAndReturn bbr);
//修改借阅记录
int updateBorrow(Connection conn, int readerId, int ISBN, Date returnDate, BookBorrowAndReturn bbr);
//根据readerId查询需要归还的图书记录
List<BookBorrowAndReturn> selectBorrowByReaderId(Connection conn, int readerId);
//根据isbn和readerId以及状态查询需要归还的图书记录
BookBorrowAndReturn selectBorrowByIsbn(Connection conn, int readerId, int isbn, String state);
//根据状态和图书编号查询
List<BookBorrowAndReturn> selectBorrowByIsbn(Connection connection, int isbn, String state);
//根据读者ID和状态查询
List<BookBorrowAndReturn> selectBorrowByState(Connection connection, int readerId, String state);
}
图书借阅的Impl:
public class BookBorrowAndReturnImpl extends BaseDao<BookBorrowAndReturn> implements BookBorrowAndReturnDao {
//查询所有借阅信息
@Override
public List<BookBorrowAndReturn> selectAllBorrow(Connection conn) {
String sql = "select readerId,readerName,bookISBN as ISBN,bookName, borrowDate,returnDate,fine,state from bookborrowandreturn";
List<BookBorrowAndReturn> beanList = getBeanList(conn, sql);
return beanList;
}
//借书记录
@Override
public void addborrow(Connection conn, BookBorrowAndReturn bbr) {
String sql = "insert into bookborrowandreturn(readerId,readerName,bookISBN,bookName,borrowDate,state) values(?,?,?