当前位置: 代码迷 >> J2EE >> SSH架构,就是更新数据库的时候一直更新不进去,好像是对象null的有关问题
  详细解决方案

SSH架构,就是更新数据库的时候一直更新不进去,好像是对象null的有关问题

热度:102   发布时间:2016-04-17 23:13:29.0
SSH架构,就是更新数据库的时候一直更新不进去,好像是对象null的问题
就是更新操作的时候,一直在后台打印该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吧
  相关解决方案