5.5 管理员还书功能
管理员可以进入借阅图书的界面,修改这个页面,增加一列功能列,完成还书功能。

只需要把借书记录的id放入url,例如:
<a href="return.jsp?id=<%=borrowBook.getId()%>">点击还书</a></td>然后在return.jsp,调用ReturnBookData的还书函数,完成还书:
package db;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class ReturnBookData{ public static void insert(String borrowId){ java.text.SimpleDateFormat dateFormat=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time=dateFormat.format(new java.util.Date()); // 要执行的sql语句,通过字符串拼接出来 String SQLTEXT=String.format("insert into return_book(`borrow_id`,`datetime`) values('"+borrowId+"','"+time+"')"); try{ // 使用上面的DBConifg类的getCon方法,建立一个连接 Connection con=DBConfig.getCon(); // 准备执行sql的实体 Statement stmt=con.createStatement(); // 执行sql,没有查询结果返回,返回结果是执行成功true或者失败 false boolean rst=stmt.execute(SQLTEXT); // while(rst.next()){ // 查询结果 result=rst.getString("nickname"); // } // 后使用先关闭原则,关闭各个对象,特别是con如果不关闭,会造成连接泄露 stmt.close(); con.close(); } catch(SQLException e){ e.printStackTrace(); } }}后续功能:
检查该书是否已经归还,如果是,那么显示已还:

具体做法是ReturnBookData用下面的函数,检查是否已还:
public static boolean isReturn(String borrowId){ int number=0; // 要执行的sql语句,通过字符串拼接出来 String SQLTEXT="select count(*) from return_book where borrow_id = '"+borrowId+"'"; try{ // 使用上面的DBConifg类的getCon方法,建立一个连接 Connection con=DBConfig.getCon(); // 准备执行sql的实体 Statement stmt=con.createStatement(); // 执行sql,并把查询结果赋给rst ResultSet rst=stmt.executeQuery(SQLTEXT); while(rst.next()){ number=rst.getInt("count(*)"); } // 后使用先关闭原则,关闭各个对象,特别是con如果不关闭,会造成连接泄露 rst.close(); stmt.close(); con.close(); } catch(SQLException e){ e.printStackTrace(); } if(number > 0){ return true; } return false;}2.管理员有一个图书管理功能,展示图书列表外,最后一列是修改,可以修改该图书的所有属性(id除外)。流程应该是点击修改链接后进入一个新的jsp页面,根据图书id把该图书的属性读出列到表单,下方的按钮是更新。
3.管理员在用户列表,增加两个功能,一个是修改昵称,一个是重置密码