第一次用csdn,并不太会写文章,请多指教。
欢迎评论!
下面用java写了一个 图书借阅系统 判断一个人不能同一本书借两次。
可能不能复制粘贴在你们的电脑上运行,希望能看到注释给你们一点思路,也希望大家指点问题。
!!!!!!!!!
时隔多天,过来更新!
先从数据库中,根据userId和bookId两个字段,查询数量count,如果数量是0,则表明数据库中这个人还没有借过这本书,可以借。
如果count!=0,说明这个人借过了,提示不能重复借书。
1.action部分,//doSave()
public void doSave() {
//判断一个人不能同一本书借两次
int flag=1; //flag标签用于判断能否进行保存操作
List<BorrowerBook> bblist=this.borrowerBookManager.findAll(); //得到数据库信息
List<String> sList=new ArrayList<>(); //用于存bookId和borrowerId
for(BorrowerBook bb:bblist){
sList.add(bb.getBorrowerId().toString() + "," + bb.getBookId().toString());
}
/*观察sList的结果
---------------
1,1
1,3
2,1
3,1
---------------
System.out.println("---------------");
for(String s:sList){
System.out.println(s);
}
System.out.println("---------------");*/
//用于存放图书的id值,用于之后的保存操作
List<Long> list=new ArrayList<>();
//得到前台页面提交过来的checkAll信息,
String checkAll=this.getParameter("checkAll");
//转化为String数组
String[] strarr = checkAll.split(",");
List<String> saveList=new ArrayList<>();//用于存bookId和borrowerId
for(String s:strarr){
saveList.add(borrowerBook.getBorrowerId() + "," + s);
list.add(Long.parseLong(s)); //得到了图书的id值,用于之后的保存操作
}
/*观察sList的结果
---------------
1,1
1,3
---------------
System.out.println("---------------");
for(String s:saveList){
System.out.println(s);
}
System.out.println("---------------");*/
//双层for循环比较值,一旦有重复值,就立即跳出循环,flag=0
for(String s:sList){
for(String save:saveList){
if(s.equals(save)){
flag=0;
break;
}
}
}
if(flag==1){
try {
for(Long l:list){
getBorrowerBook().setBookId(l);
this.borrowerBookManager.save(borrowerBook);
//此处实现数量的同步减少
this.book = this.bookManager.get(l);
int i=book.getNum();
i--;
this.book.setNum(i);
bookManager.update(book);
}
super.outputSuccessResult();
} catch (Exception e) {
super.outputErrorResult(e);
}
//否则,返回你想抛出的异常,用于js判断信息异常,0就是异常信息的标志
}else{
super.outputErrorResult("0");
}
}
可以删去注释部分。
我觉得我的思路很繁琐,不知道还有没有简单的办法实现这个功能。
2.前端页面的js部分
$.post(form.action, $(form).serialize(), function(data) {
if (data.result) {
//是因为这句话导致list无法刷新,这是一个没有被定义的函数
//backToContent();
alert("保存成功!");
$table.bootstrapTable("refresh");
} else {
if(data.message=="0"){
alert("你已经借过这本书了,请先归还再重新借阅");
}
else{
alert( data.message || "保存失败!");
}
}
});
3.数据库的表