关于图书分类添加问题

关于图书分类添加问题

//添加分类图书的servlet

package servlet;

import model.BookCatgory;
import model.LibserviceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;


@WebServlet("/catgory")
public class CatgoryServlet extends HttpServlet {
   @Override
   protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       String msg="";
       LibserviceImpl lsi=new LibserviceImpl();
       Long id=Long.valueOf(req.getParameter("id"));//id为长整型,需要做个转换
       String catgoryName=req.getParameter("catgoryName");
       String description=req.getParameter("description");
       List<Map<Long, BookCatgory>> classBook= lsi.getAllBookCatgory();
       //调用查询方法接受书籍分类的集合来查看是否已经重复



       if(classBook.isEmpty()){
           lsi.addBookCatgory(id,catgoryName,description);
           msg="添加成功";
       }else
           {
               boolean flag=false;

           for(Map<Long, BookCatgory> map:classBook){
               for(Map.Entry entry:map.entrySet()){
                   System.out.print(entry.getValue());
                   if(entry.getKey().equals(id)||entry.getValue()==(catgoryName)){
                       flag=true;
                       break;
                   }
               }


               }

               if(flag){
               msg="已经存在该类别";
               }
               else  {
                   lsi.addBookCatgory(id,catgoryName,description);
                   msg="添加成功";

               }


           }





       req.setAttribute("msg",msg);
      req.getRequestDispatcher("/catgory.jsp").forward(req,resp);

   }
}

//图书分类的类

package model;

import java.security.PublicKey;

public class BookCatgory {
   public long id;
   public  String catgotyName;
   public String description;


   public BookCatgory() {

   }

   public BookCatgory(long id, String catgotyName, String description) {
      this.setId(id);
       this.setCatgotyName(catgotyName);
       this.setDescription(description);
   }

   public long getId() {
       return id;
   }

   public String getCatgotyName() {
       return catgotyName;
   }

   public String getDescription() {
       return description;
   }

   public void setId(long id) {
       this.id = id;
   }

   public void setCatgotyName(String catgotyName) {
       this.catgotyName = catgotyName;
   }

   public void setDescription(String description) {
       this.description = description;
   }

   @Override
   public String toString() {
       String str=catgotyName;
       return str;
   }
}

问题:

我已经重新写了图书分类类的tostring方法。 但是为什么当我输入相同名称(比如已经有言情类了还是可以添加成功) 还是能添加成功。

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

1、重写equals和hashcode方法才是判别这个类是不是重复的呦,而不是toString()方法,toString()方法是让其输出属性值的。

2、建议你在判断语句中写个输出语句,看看是否进去了,如果没进去,,说明if中判断的结果是false

你再挨个打印输出一下这个表达式,看看具体哪个是false,或者具体哪个值是什么。看看具体哪个值与你期待的不一样,并找一下原因

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • Daisy3924553 提问者 #1
    我试着重写了BookCatgory类的equals()方法。 但是还是没到到目的。 是进去判断了的。请问老师是不是要重写其他类的equals()方法啊
    2019-03-20 12:25:02
提问者 Daisy3924553 2019-03-20 11:44:50

if(entry.getKey().equals(id)||entry.getValue()==(catgoryName)){}

这句话 不管是写成这样或者是

if(entry.getKey().equals(id)||entry.getValue()。equals(catgoryName)){}都一样没用

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10204    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师