weixin_50295962 2022-05-04 22:41 采纳率: 0%
浏览 622

Request processing failed; nested exception is java.lang.NullPointerException

一直报错显示:Servlet[springmvc]的Servlet.service()引发了具有根本原因的异常Request processing failed; nested exception is java.lang.NullPointerException
报错如下:
java.lang.NullPointerException
at com.util.CommDAO.select(CommDAO.java:520)
at com.util.Info.getInventory(Info.java:678)
at com.controller.OrdermsgController.faHuo(OrdermsgController.java:314)

这是错误界面:

img


OrdermsgController.faHuo的代码如下:

//发货
    @RequestMapping("admin/faHuo")
    public String faHuo(Ordermsg ordermsg,HttpServletRequest request){
        Ordermsg order = ordermsgDAO.findById(ordermsg.getId());
        List<Ordermsgdetails> list = ordermsgdetailsDAO.selectorderDetails(order.getOrderno());        
        boolean flag = true;
        for(Ordermsgdetails ordermsgdetails:list){
            int inventoryrecord = Info.getInventory(ordermsgdetails.getProductid());//库存数量
            if(inventoryrecord<ordermsgdetails.getNum()){
                flag = false;
                break;
            }
        }
        if(flag==true){
            for(Ordermsgdetails omd:list){
                Inventory inv = new Inventory();
                inv.setNum(omd.getNum());
                inv.setType("out");
                inv.setProductid(String.valueOf( omd.getProductid()));
                inventoryDAO.add(inv);
            }
            ordermsg.setShstatus("待收货");
            ordermsgDAO.update(ordermsg);
            return "redirect:orderList.do";
        }else{
            return "redirect:orderList.do?msg=msg";
        }
        
    }

Info.getInventory对应代码如下:

//库存
      @Autowired
      public static int getInventory(int id) {
          int num=0;
          int intotal = 0;
          int outtotal = 0;
          CommDAO dao = new CommDAO();  
          List<HashMap> inlist = dao.select("select * from inventory where type='in' and productid='"+id+"'");
          List<HashMap> outlist = dao.select("select * from inventory where type='out' and productid='"+id+"'");
          for(HashMap inmap:inlist){
              intotal+=Integer.parseInt(inmap.get("num").toString());
          }
          for(HashMap outmap:outlist){
              outtotal+=Integer.parseInt(outmap.get("num").toString());
          }
          if(intotal>=outtotal){
              num = intotal-outtotal;
          }
        return num;
    }

CommDAO.select对应代码如下:

public List<HashMap> select(String sql)
{ 
    System.out.println(sql);
    List<HashMap> list = new ArrayList();
    try {
        Statement st = conn.createStatement();
        ResultSet rs = st.executeQuery(sql);
        ResultSetMetaData rsmd = rs.getMetaData();
    
        while(rs.next())
        {
            HashMap map = new HashMap();
            int i = rsmd.getColumnCount();
            for(int j=1;j<=i;j++)
            {
                if(!rsmd.getColumnName(j).equals("ID"))
                {
                    String str = rs.getString(j)==null?"": rs.getString(j);
                    if(str.equals("null"))str = "";
                    map.put(rsmd.getColumnName(j), str);
                }
                else
                    map.put("id", rs.getString(j));
            }
            list.add(map);
        }
        rs.close();
        st.close();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        
        if(sql.equals("show tables"))
        list = select("select table_name from   INFORMATION_SCHEMA.tables");
        else
            e.printStackTrace();
    }
    return list;
}

在百度找了好多方法试了都不管用,急需各位解惑

  • 写回答

1条回答 默认 最新

  • 拾光师 2022-05-04 22:58
    关注

    CommDAO.java的520行空指针,520行代码是什么

    评论

报告相同问题?

问题事件

  • 创建了问题 5月4日

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作