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

📄 function.java

📁 图书管管理系统是基于JAVA的 很好的
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/*
 * Function.java
 *
 * Created on 2007年11月10日, 下午2:14
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package h6.action;

import h6.decision.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.Vector;


/**
 *
 * @author dinga
 */
/**
 *Function类封装了有关功能的实现方法
 */
public class Function {
    /** Creates a new instance of Function */
    public Function() {
    }
    
    /**
     *该方法实现了读者ID登录的功能
     *@param readerID 请求登录系统的读者的读者证号
     *@param password 该读者的密码
     *@return 如果读者证号不存在,返回-2
     *@return 如果密码不正确,返回-1
     *@return 如果查询失败,返回0
     *@return 如果读者证号对应的密码正确,返回1
     */
    public static int readerLogin(String readerID,String password) throws SQLException{
        int loginSuccess = 0;
        DataBase db = new DataBase();
        String attr[] = {"password"};
        String where = "reader_ID='" + readerID + "'";
        ResultSet rs = db.search("reader",attr,where);
        
        if(!rs.next())
            loginSuccess = -2;         
        else {
            String md5password = rs.getString("password");
            if(Filter.toMd5(password).compareTo(md5password) != 0)
                loginSuccess = -1;
            else
                loginSuccess = 1;
        }
        
        rs.close();
        db.closeConnection();
        return loginSuccess;
    }
    
    /**
     *该方法实现了读者用户名登录的功能
     *@param name 请求登录系统的读者的用户名
     *@param password 该读者的密码
     *@return 如果读者存在,且密码正确,返回true
     *@return 如果读者不存在或者密码不正确,返回false
     */
    public static boolean isLogin(String name,String password) throws SQLException{
        boolean loginSuccess = false;
        DataBase db = new DataBase();
        String attr[] = {"password"};
        String where = "user_name='" + name + "'";
        ResultSet rs = db.search("reader",attr,where);
       
        if(rs.next())
            if(password.compareTo(rs.getString(1)) == 0)
                loginSuccess = true;	    
	    else
                loginSuccess = false;
        else
            loginSuccess = false;
        
        rs.close();
        db.closeConnection();
        return loginSuccess;
    }
    
    /**
     *该方法实现了管理员ID登录的功能
     *@param adName 请求登录系统的管理员的用户名
     *@param password 该管理员的密码
     *@return 如果用户名不存在,返回-1
     *@return 如果密码不正确,返回0
     *@return 如果管理员用户名对应的密码正确,返回1
     */
    public static int administratorLogin(String adName,String password) throws SQLException{    
        int loginSuccess = 0;
        DataBase db = new DataBase();
        String attr[] = {"password"};
        String where = "name='" + adName + "'";
        ResultSet rs = db.search("administrator", attr, where);
        
        if(!rs.next())
            loginSuccess = -1;
        else {
            String md5password = rs.getString("password");
            if(Filter.toMd5(password).compareTo(md5password) != 0)
                loginSuccess = 0;
            else
                loginSuccess = 1;
        }
        
        rs.close();
        db.closeConnection();
        return loginSuccess;
    }
    
    /**
     *该方法实现了新书的添加,并自动更新新书表
     *@param name 书名
     *@param publish 出版社
     *@param TP 分类号
     *@param language 语种
     *@param author 作者
     *@param year 出版年份
     *@param totalNumber 进书数目
     *@param ISBN ISBN号
     *@param date 进书日期
     *@return 如果该ISBN号已经存在于书表中,返回-4
     *@return 如果该ISBN号已经存在于新书表中,返回-3
     *@return 如果插入到新书表中失败,返回-2
     *@return 如果插入到书表中失败,返回-1
     *@return 如果成功插入,返回1
     */        
    public static int addBook(String name,String publish,String TP,String language,
            String author,String year,String totalNumber,String lendNumber,String ISBN,String date)throws SQLException{
        int addSuccess;
        DataBase db = new DataBase();
        
        if(ShareSubprogram.bookExist(ISBN))
            addSuccess = -4;        
        else if(ShareSubprogram.bookExistInNew(ISBN))
            addSuccess = -3;        
        else if (!db.insert("newbook","'" + ISBN+"','" + author + "','" + date + "','" + publish + "','" + name + "'"))
            addSuccess = -2;
        else if (!db.insert("book","'" + name + "','" + publish + "','" + TP + "','" + language + "','" + author + "','" + year +
                "','" + totalNumber + "','" + lendNumber + "','" + ISBN + "','" + date + "'"))
            addSuccess = -1;	
        else
            addSuccess = 1;             
        
        db.closeConnection();
        return addSuccess;
    }
    
    /**
     *该方法实现了书籍信息的更新
     *@param originalISBN 原ISBN号
     *@param name 书名
     *@param publish 出版社
     *@param TP 分类号
     *@param language 语种
     *@param author 作者
     *@param year 出版年份
     *@param totalNumber 书籍总数
     *@param lendNumber 已借出数目
     *@param ISBN ISBN号
     *@param date 进书日期
     *@return 如果未找到要更新的书籍,返回-1
     *@return 如果更新失败,返回0
     *@return 如果成功更新,返回1
     */
    public static int updateBook(String originalISBN,String name,String publish,String TP,
            String language,String author,String year,String totalNumber,String lendNumber,
            String ISBN,String date)throws SQLException{
        int updataSuccess = 0;
        DataBase db = new DataBase();
        
        if(!ShareSubprogram.bookExist(originalISBN))
            updataSuccess = -1;
        else if (db.update("book", "name='" + name + "',publish='" + publish + "',TP='" + TP + "',language='" + language +
                "',author='" + author + "',year='" + year + "',total_number='" + totalNumber + "',lend_number='" + lendNumber +
                "',ISBN='" + ISBN + "',date='" + date + "'","ISBN='" + originalISBN + "'"))
            updataSuccess = 1;
        
        db.closeConnection();
        return updataSuccess;
    }
    
    /**
     *该方法实现了书籍的删除
     *@param ISBN 要删除的书籍的ISBN号
     *@return 如果未找到要删除的书籍,返回-2
     *@return 如果借出数目大于0,返回-1
     *@return 如果删除失败,返回0
     *@return 如果借出数目为0且成功删除,返回1
     */
    public static int deleteBook(String ISBN)throws SQLException{
        int deleteSuccess = 0;
        DataBase db = new DataBase();
        
        if(!ShareSubprogram.bookExist(ISBN))
            deleteSuccess = -2;        
        else if(ShareSubprogram.bookIsGone(ISBN))
            deleteSuccess = -1;       
        else if(db.delete("book","ISBN='"+ISBN+"'"))
            deleteSuccess = 1;
           
        db.closeConnection();
        return deleteSuccess;
    }
    
    /**
     *该方法实现了书籍的暂存功能
     *@param readerID 请求暂存操作的读者的读者证号
     *@param ISBN 读者请求暂存的书籍的ISBN号
     *@return 如果库中已存在该次暂存的信息,返回-1
     *@return 如果插入失败,返回0
     *@return 如果插入成功,返回1
     */
    public static int depositBook(String readerID,String ISBN)throws SQLException{
        int depositSuccess = 0;
        DataBase db = new DataBase();
        
        if(ShareSubprogram.despositExist(readerID,ISBN))
            depositSuccess = -1;
        else if (db.insert("tempbasket","'" + ISBN + "','" + readerID + "'"))
            depositSuccess = 1;
        
        db.closeConnection();
        return depositSuccess;
    }
    
    /**
     *该方法实现了预约书籍的功能
     *@param readerID 请求预约书籍的读者的读者证号
     *@param ISBN 读者希望预约的书籍的ISBN号
     *@return 如果该书尚有流通本,无法预约,返回-3
     *@return 如果预约次数已达到最大,无法预约,返回-2
     *@return 如果库中已存在该次预约的信息,返回-1
     *@return 如果插入失败,返回0
     *@return 如果插入成功,返回1
     */
    public static int bookingBook(String readerID,String ISBN)throws SQLException{
        int bookingSuccess = 0;
        DataBase db = new DataBase();
        
        if(ShareSubprogram.bookInLibrary(ISBN))
            bookingSuccess = -3;        
        else if(!ShareSubprogram.bookingEnabled(readerID))
            bookingSuccess = -2;        
        else if(ShareSubprogram.bookingExist(readerID,ISBN))
            bookingSuccess = -1;        
        else if (db.insert("booking","'"+ISBN+"','"+readerID+"'"))
            bookingSuccess=1;
        
        db.closeConnection();
        return bookingSuccess;
    }
    
    /**
     *该方法实现了书籍的续借功能
     *@param readerID 请求续借书籍的读者的读者证号
     *@param ISBN 读者希望续借的书籍的ISBN号
     *@param number 该书的编号
     *@return 如果未在库中找到该书的信息,返回-2
     *@return 如果该书已经过期,无法续借,返回-1
     *@return 如果更新失败,返回0
     *@return 如果更新成功,返回1
     */
    public static int renewBook(String readerID,String ISBN,String number)throws SQLException{
        int renewSuccess = 0;
        String str;
        SystemParameter addm = new SystemParameter();
        DataBase db = new DataBase();
        String []now = Filter.getDate().split("-");
        int year = Integer.parseInt(now[0]);
        int month = Integer.parseInt(now[1]);
        int date = Integer.parseInt(now[2]);
        
        year += Integer.parseInt(addm.getLendTerm()) / 12;
        month += Integer.parseInt(addm.getLendTerm()) % 12;
        if (month > 12){
            year += 1;
            month %= 12;
        }
        str = year + "-" + month + "-" + date;
        if(!ShareSubprogram.bookExist(ISBN))
            renewSuccess = -2;        
        else if (ShareSubprogram.bookOverdue(ISBN,number))
            renewSuccess = -1;
        else if (db.update("loan", "ISBN='" + ISBN + "',number='" + number + "',reader_ID='" +
                readerID + "',renew='T',deadline='" + str + "'","ISBN='" + ISBN + "'and number='" + number + "'"))
            renewSuccess = 1;
        
        db.closeConnection();
        return renewSuccess;
    }
    
    /**
     *该方法实现了书籍评价的功能
     *@param ISBN 被评价书籍的ISBN号
     *@param value 读者的评价,value为4表示最好,为0表示最差,依此类推
     *@return 如果ISBN号不存在,返回-1
     *@return 如果更新失败,返回0
     *@return 如果更新成功,返回1
     */
    public static int appraiseBook(String ISBN,String value) throws SQLException{
        int appraiseSuccess = 0;
        DataBase db = new DataBase();
        
        if (!ShareSubprogram.bookExist(ISBN)){
            appraiseSuccess = -1;
            db.closeConnection();
            return appraiseSuccess;
        }
        
        String attr[] = {"*"};
        String where = "ISBN='" + ISBN + "'";        
        ResultSet rs = db.search("review", attr, where);
        int [] str = {0,0,0,0,0};
        
        str[Integer.parseInt(value)] = 1;
        if(rs.next()){
            if (db.update("review","ISBN='" + ISBN + "',excellent=" + (str[4] + rs.getInt(2)) + ",good=" + (str[3] + rs.getInt(3)) + ",commonly=" +
                    (str[2] + rs.getInt(4)) + ",bad=" + (str[1] + rs.getInt(5)) + ",terrible=" + (str[0] + rs.getInt(6)),"ISBN='" + ISBN + "'"))

⌨️ 快捷键说明

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