|
就是更新操作的时候,一直在后台打印该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吧 |
