就是更新操作的时候,一直在后台打印该id不存在。 POJO类有三个数据字段 Dao组件类的按照id查询以及更新的方法,这里贴出部分代码 public Product queryByID(String id) { // TODO Auto-generated method stub List<Product> entitise=getHibernateTemplate().find("from Product as pro where pro.id=?",id); if (entitise.size() > 0) { Product entity = entitise.get(0); return entity; } return null; } public void update(Product p) { // TODO Auto-generated method stub getHibernateTemplate().saveOrUpdate(p); } 下面是Service组件类,也只是给出按照id查询部分代码以及更新部分的代码 public void updateProduct(Product p){ //判断是否存在相同ID的产品 if(dao.queryByID(p.getId())!=null){ //如果不存在,则调用Dao实现类进行更新 dao.update(p); }else{ //否则提示错误信息 System.out.println("id不存在"); } } //按id查询产品 public Product queryProductByID(String id){ //调用Dao实现类进行查询 return dao.queryByID(id); } 这是upadteAction类 package com.lyb.action; import com.lyb.factory.ServiceFactory; import com.lyb.po.Product; import com.lyb.service.ProductService; import com.opensymphony.xwork2.ActionSupport; public class UpdateAction extends ActionSupport{ //产品ID private String id; //产品名称 private String name; //产品价格 private double price; private ProductService ps; public void setPs(ProductService ps){ this.ps=ps; } public String getIs() { return id; } public void setIs(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String execute()throws Exception{ //将接受的参数设置到Product实例中 Product p=new Product(); p.setId(id); p.setName(name); p.setPrice(price); //调用业务逻辑组件保存该产品 ps.updateProduct(p); return SUCCESS; } } 除了更新,其他删除,添加,都没问题。问题是不是出在 service类的按照id查询部分,因为id返回为null,在if判断语句才会转到else,从而打印id不存在这句话。该怎么修改呢 |
|
一直这样,烦死我了。求大神解答,是不是哪里代码出错了,然后传值为null,导致一直判断到else去,一直打印该死的id不存在 |
|
别沉啊,自己定,在线等
|
|
20分 |
public String getIs() {
return id; } public void setIs(String id) { this.id = id; } 错了,应该是getId,setId吧 |