⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 borrowbook.java

📁 图书管理系统,B/S,C/S都有,附有源代码
💻 JAVA
字号:
package book;

import database.DataBase;
import database.DateTime;
import java.sql.ResultSet;
import reader.Readers;
import admin.admin;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

/**
 * <p>Title: library</p>
 * <p>Description: library</p>
 * <p>Copyright: Copyright (c) 2007</p>
 * <p>Company: </p>
 * @author nino
 * @version 0.1
 */

public class borrowBook {

  private String errMsg;
  private String readerSN;
  private String bookSN;
  private javax.servlet.http.HttpServletRequest request; //建立页面请求
  private javax.servlet.http.HttpSession session; //接收页面SESSION

  public String getErrMsg() {
    return errMsg;
  }

  public String getBookSN() {
    return bookSN;
  }

  public String getReaderSN() {
    return readerSN;
  }

  public boolean borrowBook(HttpServletRequest res, HttpSession ses) throws
      Exception {

    DataBase db = new DataBase();

    //获取页面请求信息
    request = res;
    String newBookSN = db.toSql(request.getParameter("bookSN"));
    String newReaderSN = db.toSql(request.getParameter("readerSN"));

    //从SESSION中获取管理员ID
    session = ses;
    String supervisor = db.toSql( (String) session.getAttribute("supervisor"));

    //关闭数据库连接
    db.close();

    admin admin = new admin();
    if (admin.isAdminBB(supervisor)) {
      Readers reader = new Readers();
      if (reader.isReaderExist(newReaderSN)) {
        if (!reader.isReaderLocked(newReaderSN)) {
          if (!reader.isExpReader(newReaderSN)) {
            if (!reader.isBBRL(newReaderSN)) {
              Books book = new Books();
              if (!book.isExpBook(newReaderSN)) {
                if (book.isBookExist(newBookSN)) {
                  if (book.isBookIn(newBookSN)) {
                    if (book.canBorrow(newReaderSN, newBookSN)) {
                      return true;
                    }
                    else {
                      errMsg = "编号为" + newReaderSN + "的读者不够权限借阅编号为" + newBookSN +
                          "的图书!";
                      return false;
                    }
                  }
                  else {
                    errMsg = "编号为" + newBookSN + "的图书不在库,已借出!";
                    return false;
                  }
                }
                else {
                  errMsg = "编号为" + newBookSN + "的图书不存在!";
                  return false;
                }
              }
              else {
                errMsg = "编号为" + newReaderSN + "的读者有逾期未归还的图书,请先归还图书后再借阅新书!";
                return false;
              }
            }
            else {
              errMsg = "编号为" + newReaderSN + "的读者的图书借阅数量已满!";
              return false;
            }
          }
          else {
            errMsg = "编号为" + newReaderSN + "的读者借阅有效期已过期!";
            return false;
          }
        }
        else {
          errMsg = "编号为" + newReaderSN + "的读者被已锁定!";
          return false;
        }
      }
      else {
        errMsg = "编号为" + newReaderSN + "的读者编号不存在!";
        return false;
      }
    }
    else {
      errMsg = "编号为" + supervisor + "的管理员没有权限进行借阅图书的操作!";
      return false;
    }
  }

  public boolean exeBorrow(HttpServletRequest res) throws Exception {

    try {

      DataBase db = new DataBase();
      DateTime dt = new DateTime();

      //获取页面请求信息
      request = res;
      String newBookSN = db.toSql(request.getParameter("bookSN"));
      String newReaderSN = db.toSql(request.getParameter("readerSN"));

      //执行借阅

      //获取该读者信息
      db.prepareStatement(
          "select 读者姓名,借阅权限 from Reader where 读者编号 = ?");
      db.setString(1, db.toSql(newReaderSN));
      ResultSet rs = db.executeQuery();
      rs.next();
      String newReaderName = rs.getString(1);
      String newReaderPower = rs.getString(2);

      db.prepareStatement(
          "select 借阅期限 from ReaderLevel where 借阅权限 = ?");
      db.setString(1, newReaderPower);
      rs = db.executeQuery();
      rs.next();
      int newRPBT = Integer.parseInt(rs.getString(1));
      rs.close();

      //计算还书日期
      String newCD = db.toSql(dt.getDate());
      String newRD = db.toSql(dt.gainMonth(newRPBT));

      //将借阅信息写入
      db.prepareStatement(
          "insert into Borrow values(?,?,?,?,?,'0')");
      db.setString(1, newBookSN);
      db.setString(2, newReaderSN);
      db.setString(3, newReaderName);
      db.setString(4, newCD);
      db.setString(5, newRD);
      db.executeUpdate();

      //将图书不在库信息写入
      db.prepareStatement(
          "update Book set 是否在库 = '0' where 图书编号 = ?");
      db.setString(1, newBookSN);
      db.executeUpdate();

      //关闭数据库连接
      db.close();
      return true;

    }
    catch (Exception e) {
      return false;
    }

  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -