就是更新操作的时候,一直在后台打印该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不存在这句话。该怎么修改呢
------解决思路----------------------
public String getIs() {
return id;
}
public void setIs(String id) {
this.id = id;
}
错了,应该是getId,setId吧