📄 function.java
字号:
/*
* 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 + -