引言:昨日我重新审视了B-E00007-基于Java web的图书借阅管理系统的bug问题,主要是借阅图书和归还图书的bug问题,这两个借阅日期和归还日期不太准确,以及借阅后图书数量未发生变化,所以对代码进行了维护和 升级。
1.bug一:图书借阅数量
未修复前:图书借阅之后数量不会发生变化。
修复后:用户默认借阅一本则数量发生变化,借一本少一本。
2.bug二:借阅信息
未修复前:图书借阅之后借阅日期和截至还书日期错误,推迟了一个月,默认借阅日期为一个月。
修复后:图书借阅信息日期和截至还书日期都发生了变化,采用了时间更为精确。
3.bug三:借阅历史
未修复前:图书借阅之后借阅日期和还书日期都有错误,还书日期未加1。
修复后:图书借阅信息日期和还书日期都发生了变化,采用了时间更为精确。
4.总结
使得程序更为严谨准确,那么如何修复这些bug,实际上改变了一段代码,这里对日期进行了处理,对于一些同学来说日期是一个头疼的问题,因此,在这里通过Java的Calendar对象来对日期时间进行操作,而且在这里使用jdbc执行了两条sql语句,一个stm也就是PreparedStatement接口实例化的对象是默认执行一条sql语句的,所以在一个方法里面如果想使用jdbc执行两条sql就需要实例化两个stm对象,这对大家学习和开发都是很有帮助的哦!!!
public void borrowBook(int bid, AdminBean adminbean) {
BookBean bookbean = new BookBean();
bookbean = this.get_BookInfo(bid);
//生成时间的功能
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c = Calendar.getInstance();
c.setTime(new Date());
Date d = c.getTime();
String startDate = format.format(d);
c.setTime(new Date());
c.add(Calendar.MONTH, +1);
Date m = c.getTime();
String endtime = format.format(m);
Connection conn = DBUtil.getConnectDb();
String sql =
"insert into history
(aid,bid,card,bookname,adminname,username,begintime,endtime,status) values(?,?,?,?,?,?,?,?,?)";
String sql2 = "update book set num=? where bid=? ";
int rs =0 ;
try {
PreparedStatement stm = conn.prepareStatement(sql);//执行sql语句
stm.setInt(1, adminbean.getAid());
stm.setInt(2, bookbean.getBid());
stm.setString(3, bookbean.getCard());
stm.setString(4, bookbean.getName());
stm.setString(5, adminbean.getUsername());
stm.setString(6, adminbean.getName());
stm.setString(7, startDate);
stm.setString(8, endtime );
stm.setInt(9, 1);
rs=stm.executeUpdate();
PreparedStatement stm2= conn.prepareStatement(sql2);
stm2.setInt(1, bookbean.getNum()-1);
stm2.setInt(2, bookbean.getBid());
rs=stm2.executeUpdate();
conn.commit();
} catch (SQLException e) {
e.printStackTrace();
}
}