package dao.library.com;
import java.math.RoundingMode;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import tool.library.com.MessageSolveTools;
import entity.library.com.ManagerMessage;
import entity.library.com.UserTicket;
public class MessageDao {
public static boolean isCanRenew(String borrowdate)
{
Date date = new Date();
int days=0;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
try {
Date date2=dateFormat.parse(borrowdate);
// System.out.println(date.getDay());
// System.out.println(date2.getDay());
days = (int) ((date.getTime() - date2.getTime())/(24*3600*1000));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(days>23&&days<=30)
{
System.out.println("允许续借");
return true;
}
return false;
}
public static void update_state(String username,String bookname)
{
String str =null;
Connection conn=null ;
PreparedStatement stm=null;
ResultSet rs = null;
String str1 = null;
String str3="0";
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");//更新时间和状态
str = dateFormat.format(new Date());
conn = DbUtils.getConnection();
System.out.println(bookname);
String sql="update `bookinfo` SET `bookstate`=?,`borrowdate`=? WHERE `username`= ? and `bookname`= ?";
stm = conn.prepareStatement(sql);
System.out.println(".........");
System.out.println(str3+".........");
System.out.println(str+".........");
stm.setString(1,str3);
stm.setString(2,str);
stm.setString(3,username);
stm.setString(4,bookname);
int nums = stm.executeUpdate();
System.out.println(nums+"hahahh111111111");//执行成功后 还需要给用户发送借阅成功的消息 还需更新借书时间
/**此处发送消息**/
String sql2="select `message_success` from `user` where `username`=?";//获取原来的未处理的信息
stm = conn.prepareStatement(sql2);
stm.setString(1, username);
rs=stm.executeQuery();
if(rs.next())
{
str1 = rs.getString(1);
}
String str2 = null;
if(str1==null)
{
str2 ="您已成功借阅"+bookname+"!";
}
else
{
str2 = str1 +"您已成功借阅"+bookname+"!";
}
String sqlt="UPDATE `user` SET `message_success`=? WHERE `username`=? ";
stm = conn.prepareStatement(sqlt);
stm.setString(1, str2);
stm.setString(2, username);
int num = stm.executeUpdate();
/** 此处将馆藏的书减少一本 **/ //考虑到原子性问题 :用户根据馆藏借书 若馆藏大于0便可点击借阅
//并将该书放于借阅信息中 此时若不更改馆藏 可能会影响其他用户的借阅 所以将对馆藏的操作 放于用户程序中 保证了原子性
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DbUtils.release(conn, stm, null);
}
}
public static void delete_back(String username,String bookname)//此处应设置事务操作
{
//boolean success=false;
Connection conn=null ;
PreparedStatement stm=null;
ResultSet rs = null;
String str1 = null;
try {
conn = DbUtils.getConnection();
String sql="DELETE FROM `bookinfo` WHERE `username`=? and `bookname`=?;";
stm = conn.prepareStatement(sql);
stm.setString(1,username);
stm.setString(2,bookname);
stm.executeUpdate();//此处成功后需要给用户发送归还成功的消息,并且该书的馆藏+1,此处还应立即处理hasbook-1操作
/**此处处理**/
String sql2="select `message_success` from `user` where `username`=?";//获取原来的未处理的信息
stm = conn.prepareStatement(sql2);
stm.setString(1, username);
rs=stm.executeQuery();
if(rs.next())
{
str1 = rs.getString(1);
}
String str2=null;
if(str1!=null)
str2 = str1 +"您已成功归还"+bookname+"!";
else
str2="您已成功归还"+bookname+"!";
String sqlt="UPDATE `user` SET `message_success`=? WHERE `username`=? ";
stm = conn.prepareStatement(sqlt);
stm.setString(1, str2);
stm.setString(2, username);
int num = stm.executeUpdate();
/**此处为对馆藏的更新 借阅成功不更新考虑到其与用户的动作保持一致性 所以放到用户处处理
但是此处删除完借阅信息后 保证原子性 就必须将馆藏+1**/
String sql4="select `ammount` from `book` where `bookname`=?";//获取原来的未处理的信息
stm = conn.prepareStatement(sql4);
stm.setString(1, bookname);
rs=stm.executeQuery();
if(rs.next())
{
str1 = rs.getString(1);
str1=String.valueOf((Integer.valueOf(str1)+1));
}
String sql3="UPDATE `book` SET `ammount`=? WHERE `bookname`=? ";
stm = conn.prepareStatement(sql3);
stm.setString(1, str1);
stm.setString(2, bookname);
int nums = stm.executeUpdate();
String sql6="select `hasbook` from `user` where `username`=?";//此处更新用户的hasbook
stm = conn.prepareStatement(sql6);
stm.setString(1, username);
rs=stm.executeQuery();
if(rs.next())
{
str1 = rs.getString(1);
System.out.println("hasbook:"+str1);
str1=String.valueOf((Integer.valueOf(str1)-1));
System.out.println("hasbook:"+str1);
}
String sql7="UPDATE `user` SET `hasbook`=? WHERE `username`=? ";
stm = conn.prepareStatement(sql7);
stm.setString(1, str1);
stm.setString(2, username);
int numst = stm.executeUpdate();
System.out.println(numst);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DbUtils.release(conn, stm, null);
}
}
public static void singlesendticket(String username,String bookname)
{
boolean bool=true ;
UserTicket userticket = getUserTicket(username,bookname);
Connection conn=null ;
PreparedStatement stm=null;
ResultSet rs = null;
try {
conn = DbUtils.getConnection();
String sqlt="UPDATE `user` SET `message_success`=? WHERE `username`=?";
System.out.println(username);
System.out.println(bookname);
System.out.println(userticket.getCheck());
if(1==1){
stm = conn.prepareStatement(sqlt);
bool = false;
TicketDao.sendSingleTicket(username);
String str1="您未成功借阅/归还"+bookname+"请先处理完罚单,再进行借阅/归还!";
System.out.println("开始");
// System.out.println(str);
System.out.println(str1);
System.out.println(userticket.getUsername());
System.out.println(username);
stm.setString(1, str1);
stm.setString(2, userticket.getUsername());
int resNum = stm.executeUpdate();
System.out.println(resNum);
if (resNum == 1){
bool = true;
}
}
if(bool==false)
{
System.out.println("更新罚单失败!");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DbUtils.release(conn, stm, null);
}
}
private static UserTicket getUserTicket(String username, String bookname) {//通过书名 账户 返回 一个对象
// TODO Auto-generated method stub
UserTicket userticket = new UserTicket();
userticket.setUsername(username);
userticket.setBookname(bookname);
Connection conn=null ;
PreparedStatement stm=null;
ResultSet rs = null;
try {
conn = DbUtils.getConnection();
String sql="select * from `bookinfo` where `username`=? and `bookname`=?";
stm = conn.prepareStatement(sql);
stm.setString(1, username);
stm.setString(2, bookname);
rs = stm.executeQuery();
if(rs.next()){
userticket.setCheck(rs.getString(4));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DbUtils.release(conn, stm, null);
}
return userticket;
}
public static Lis
没有合适的资源?快使用搜索试试~ 我知道了~
jsp之图书管理系统
共119个文件
jsp:41个
java:29个
class:29个
4星 · 超过85%的资源 需积分: 22 55 下载量 6 浏览量
2018-05-10
22:05:27
上传
评论 2
收藏 3.95MB ZIP 举报
温馨提示
开发一个图书借阅管理系统,系统包括读者用户管理、图书管理、借阅管理,用户信息包括用户编号、用户姓名、电话号码、电子邮件、用户地址等,系统管理员登录系统后可为对用户信息进行增加、删除、修改操作,并可修改读者及其自身的密码;图书信息包括图书编号、图书分类、图书名称、出版时间、出版社及作者信息,每本图书在书库中可能有1到多本。每名用户借阅图书的数量不能超过3本,每本书的借阅期限是1个月,到期前1周可以续借,但如果已经过期则不能续借。用户可通过网络远程进行续借,或查询其自身的借阅信息,以及修改其自身密码及联系方式信息。用户借阅或归还图书时,管理员首先查询用户的借阅信息,若有超期的图书,则需要先缴纳罚款,每本书每超期1天的罚款为0.1元。管理员还可以列出系统中所有未交罚款的借阅信息,并批量发送信息催促用户还书。
资源推荐
资源详情
资源评论
收起资源包目录
jsp之图书管理系统 (119个子文件)
MessageDao.class 12KB
TicketDao.class 7KB
UserDao.class 6KB
LibraryBookDao.class 4KB
HelloWorldServlet.class 3KB
LoginCheckServlet.class 3KB
ManagerDao.class 3KB
Modify_Myself_Info.class 3KB
UserManage.class 3KB
UserServlet.class 2KB
MessageServlet.class 2KB
RenewOrReturn.class 2KB
SearchBook.class 2KB
UserMessage.class 2KB
TicketComputeTools.class 2KB
UserTicket.class 2KB
Book.class 2KB
User.class 2KB
AccountManager.class 2KB
LibraryBook.class 1KB
DbUtils.class 1KB
Encoding.class 1KB
MessageSolveTools.class 1KB
CustomerBean.class 1KB
ManagerMessage.class 964B
TicketManager.class 959B
UserSvc.class 935B
Users.class 879B
Manager.class 737B
.classpath 848B
org.eclipse.wst.common.component 475B
org.eclipse.wst.jsdt.ui.superType.container 49B
fail.html 981B
mysql-connector-java-5.1.26-bin.jar 836KB
MessageDao.java 15KB
UserDao.java 7KB
TicketDao.java 7KB
LibraryBookDao.java 4KB
LoginCheckServlet.java 3KB
HelloWorldServlet.java 3KB
UserManage.java 2KB
MessageServlet.java 2KB
SearchBook.java 2KB
Modify_Myself_Info.java 2KB
ManagerDao.java 2KB
UserServlet.java 2KB
RenewOrReturn.java 2KB
AccountManager.java 2KB
TicketComputeTools.java 2KB
UserMessage.java 1KB
DbUtils.java 1KB
Encoding.java 1KB
UserTicket.java 1KB
User.java 1KB
TicketManager.java 1KB
Book.java 1KB
UserSvc.java 1KB
LibraryBook.java 949B
MessageSolveTools.java 760B
CustomerBean.java 695B
ManagerMessage.java 584B
Users.java 500B
Manager.java 361B
mapleleaf.jpg 1.11MB
loginlast.jpg 434KB
body.jpg 349KB
back.jpg 346KB
rest.jpg 184KB
body2.jpg 102KB
.jsdtscope 503B
getborrowinfo.jsp 4KB
singleinfo.jsp 4KB
userlist.jsp 3KB
myself_info.jsp 2KB
login.jsp 2KB
ajaxtest.jsp 2KB
listticket.jsp 2KB
accountinfo.jsp 2KB
comment.jsp 2KB
modifyinfo.jsp 2KB
usermessage.jsp 2KB
userlist.jsp 2KB
userlist_jstl.jsp 2KB
bookinfo.jsp 2KB
userinfo.jsp 2KB
layout.jsp 1KB
message.jsp 1KB
accountmodify.jsp 1KB
modifypassword.jsp 1KB
menu2.jsp 901B
menu.jsp 881B
userdo.jsp 628B
welcome1.jsp 474B
welcome.jsp 470B
modifypassword.jsp 225B
getborrowinfo.jsp 224B
accountmodify.jsp 223B
myself_info.jsp 222B
usermessage.jsp 222B
modifyinfo.jsp 221B
共 119 条
- 1
- 2
资源评论
- 啊哈08092019-03-23还可以 学习一下
- qq_395925592019-01-01少了个BookDao的类...奔跑的樱桃树2019-03-05说错了 多了一个jsp页面奔跑的樱桃树2019-03-05应该是多了一个类 删掉就行了 那个类是我调试别人代码加进去的
奔跑的樱桃树
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功