1.看代码
注意不要进行直接一连串的数据的存储,自己记得要将对象利用中间层进行承接。
List<Book> books = bookService.find("from Book where bookno='"+t.trim()+"'").get(0);
上面是一个取得传递过来的参数然后通过单数往数据库取东西的操作,看似没什么问题(对于菜鸟来说),其实考虑到数据为空的话,就是问题了。空的数据,get(0).自己用大腿想想吧。
下面是正确的做法
List<Book> books = new ArrayList<Book>();
books = bookService.find("from Book where bookno='"+t.trim()+"'");
//借阅的图书不存在
if(books.size()==0){
jsonMap.put("success", true);
jsonMap.put("msg", "您所借阅的图书不存在!");
return "json";
}
注意不要进行直接一连串的数据的存储,自己记得要将对象利用中间层进行承接。
2.对于判断取出的数据是否为空的操作
List<Book> books = new ArrayList<Book>();
books = bookService.find("from Book where bookno='"+t.trim()+"'");
//借阅的图书不存在
if(books==null){
jsonMap.put("success", true);
jsonMap.put("msg", "您所借阅的图书不存在!");
return "json";
}
注意看:可笑之极的动作产生了:在if里面(books == null) 自己用大腿想想 new的对象会是空么?