数据库访问层就是通过DAO设计模式将在java代码里的操作链接到数据库的过程,具体涉及到的访问操作如下所示:

根据需求分析系统功能分为读者信息管理模块、图书信息管理模块、图书借阅管理模块、基础信息维护模块和用户管理模块。

4.1 实体层

在实现功能的过程中,需要对数据表进行操作,可以在程序中直接访问数据库,但这样降低了系统的安全性,同时后续维护和扩展也不方便。因此可以建立实体类,实现数据库表的映射,封装数据库中的数据,通过对实体类的操作,映射到数据库表,既提高了系统的安全性,使代码简介,又提高了复用性和可扩展性。

根据数据库表,结合功能设计,设计6个实体类。

Book.java:ISBN,typeid,bookname,author,publish,pubilishdate,printtime,unitprice,typename
BookType.java:typeid,typename
BorrowBook.java:readerid,ISBN,borrowdate,returndate,fine
Reader.java:readerid,name,sex,age,dept,phone,regdat,limit,maxborrownum,type,typename
ReaderType.java:typeid,typename,limit,maxborrownum
Users.java:id,name,passwowrd

 

4.2 数据访问层设计

4.2.1读者信息管理

完成读者信息添加和读者信息查询与修改功能。

(1)读者信息添加

根据输入的读者编号、姓名、类别、性别、年龄、电话、所在部门、注册日期,完成读者信息的录入。其中要求读者编号和姓名不能为空,读者编号长度为8。

public static int insertReader(Reader reader){…}

(2)读者信息查询与修改

用户登录成功之后,可以查询全部读者信息,也可以分别根据读者编号、读者姓名、读者部门、读者类型查询读者信息。

public static List<Reader> selectReader(){…..}
public static Reader selectReaderById(String id){…..}
public static List<Reader> selectReaderByName(String name){…..}【模糊查询】
public static List<Reader> selectReaderByType(String type){…..}
public static List<Reader> selectReaderByDept(String dept){…..}
读者信息修改根据查询到的读者信息,可以修改各部分。
public static int updateReader(Reader reader){}

4.2.2 图书信息管理

完成图书信息添加和图书信息查询与修改功能。

(1)图书信息添加

根据录入的图书ISBN、类别、图书名称、作者、出版社、出版日期、印刷次数、单价完成图书信息添加。

public static int insertBook(Book book){……}

(2)图书信息查询与修改

用户登录成功之后,可以浏览所有图书信息,也可以根据ISBN、图书名称、图书类别、作者、出版社检索特定图书的相关信息。

public static List<Book> selectBook(){….}
public static Book selectBookByISBN(String ISBN){….}
public static List<Book> selectBookByName(String name){….}【模糊查询】
public static List<Book> selectBookByType(String type){….}
public static List<Book> selectBookByAuthor(String author){….}
public static List<Book> selectBookByPublish(String Publish){….}
图书信息修改根据查询到的读者信息,可以修改各部分。
public static int update(Book book)

4.2.3 图书借阅管理

包括图书借阅和图书归还功能。

 

(1)图书借阅

根据用户输入的读者编号,则显示出该读者的姓名、类别,及该读者的借阅情况。然后录入该读者的最新借阅的图书ISBN,显示出该图书的相关信息,确定借阅后,将该借阅信息录入(包括读者编号、图书ISBN,当前日期即借阅日期)。

public static List<BorrowBook> selectBorrowByReaderId(String readerid){….}//查询指定编号读者的借书信息

public static int borrowBook(String readerid,String ISBN, Date borrowdate){…}//图书借阅,借阅者的编号,图书编号,借阅日期

(2)图书归还

图书归还功能,输入读者的编号,则显示出该读者名下已借阅的图书,选中要归还的图书,判断当前日期即归还日期与借阅日期的差值是否超过了规定的期限,计算罚金,从而进行图书的归还操作,更新借阅信息表的归还日期为当前日期。

public static int returnBook(String readerid,String ISBN,Date returndate) {…}//图书归还,还书者的编号,图书编号,借阅日期

4.2.4 基础信息管理

包括图书类别设置、读者类别设置及罚金设置。图书类别设置,可以对图书的类别进行增加、删除、修改和查询;读者类别设置可以对读者的类别进行增加、删除、修改和查询;罚金设置,可以指定超期一天的罚金标准。

(1)图书类别设置

图书类别设置包括查询所有图书类别信息,查询指定类型名的图书类型信息,添加图书类型,修改指定编号的图书类型信息,删除指定类型编号的图书类型。

public static List<BookType> selectBookType(){…}
public static List<BookType> selectBookType(String type){…}
public static int insertBookType(Integer id, String typename){….}
public static int updateBookType(Integer id, String typename){….}
public static int deleteBookType(Integer id){….}

(2)读者类别设置

读者类别设置包括查询所有读者类型信息,查询指定类型名的读者信息类型,添加读者类型,修改指定编号的读者类型信息,删除指定类型编号的读者类型。

public static List<ReaderType> selectReaderType(){…}
public static List<ReaderType> selectReaderType(String type){…}
public static int insertReaderType(Integer id, String typename, Integer num, Integer limit){….}
public static int updateReaderType(Integer id, String typename, Integer num, Integer limit){….}
public static int deleteReaderType(Integer id){….}

4.2.5 用户管理

具体包括登陆系统的时候,判断用户名和密码是否有效;查询所有用户信息;添加用户;修改指定编号的用户的密码;删除指定编号的用户信息。

public static Users check(Users users){…}
public static List<Users> selectUser(){….}
public static int insertUser(Users users){…}
public static int updateUserPWD(Users users){…} 【根据编号修改密码】
public static int deleteUser(Integer id){…}