发表于: 2020-09-17 23:52:38

3 1483


今天完成的:
继续写services,今天是用service和dao 写的。
测试也不再是直接在网页提交表单,而是用postman测试。
首先,controller中要加入service。
@Autowired
private BookServices bookService;
service类要加注解,并且要持有一个dao。
@Service("bookService")
public class BookServicesImpl implements BookServices {
   @Autowired
   private BookDao bookDao;
   @Override
   public boolean add(Book book) {
       return bookDao.add(book);
   }
}
具体逻辑在dao层,dao层也要加注解,好像加@Repository或者@Component都行。
具体数据放在dao里的一个hashmap中。
@Repository(value = "bookDao")
public class BookDao {
   static HashMap<String, Book> bookMap = new HashMap<>();
   public boolean add(Book book) {
       ....
   }
一、增
跟上次写的基本没有区别。
@RequestMapping(value = "/ioc/book/add")
public String addBook(Book book){
   if (bookService.add(book)) {
       // 如果添加成功,就返回成功的json
       return "add";
   }
   // 失败,就返回失败的json
   return "addFail";
}
dao中的具体实现。blank方法和show方法是自己写的,一个判断非空,一个打印。
public boolean add(Book book) {
   if (blank(book.getBid())
           && blank(book.getBname())
           && blank(book.getAbs())
           && blank(book.getPress())
           && !bookMap.containsKey(book.getBid())) {
       bookMap.put(book.getBid(), book);
       show(bookMap);
       return true;
   }
   return false;
}
用postman进行测试。
顺便控制台也打印了一下。
二、查
暂时没想到比上次好的方法。就先不写了。。。
三、删、更
删除和更新的思想基本和添加是一样的。
controller中的代码
@RequestMapping(value = "/ioc/book/update")
public String updateBook(Book book){
   if (bookService.update(book)) {
       // 如果添加成功,就返回成功的json
       return "update";
   }
   // 失败,就返回失败的json
   return "updateFail";
}
@RequestMapping(value = "/ioc/book/delete")
public String deleteBook(HttpServletRequest request){
   // 执行删除
   String bid = request.getParameter("bid");
   if (bookService.doDel(bid)) {
       return "delete";
   }
   // 删除失败就返回失败的json
   return "deleteFail";
}
dao中的代码
public boolean update(Book book) {
       if (blank(book.getBid())
               && blank(book.getBname())
               && blank(book.getAbs())
               && blank(book.getPress())
               && bookMap.containsKey(book.getBid())) {
           bookMap.put(book.getBid(), book);
           show(bookMap);
           return true;
       }
       return false;
   }
public boolean doDel(String bid) {
   Set<String> ids = bookMap.keySet();
   if (ids.contains(bid)) {
       bookMap.remove(bid);
       show(bookMap);
       return true;
   }
   return false;
}
用postman进行测试,没有问题
明天计划的:
如果还是搞不定springmvc的junit单元测试问题。。就准备先往下做了。
遇到的问题:
junit和spring怎么配合,写单元测试呢?
我自己查了一些,但都跑不通。
不知道是不是要用Mockito或者htmlunit等工具。
收获:
了解了用postman发带参数的请求。



返回列表 返回列表
评论

    分享到