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

J2EE 码拜 7年前 (2015-05-10) 1035次浏览 0个评论

就是更新操作的时候,一直在后台打印该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不存在这句话。该怎么修改呢

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

一直这样,烦死我了。求大神解答,是不是哪里代码出错了,然后传值为null,导致一直判断到else去,一直打印该死的id不存在

别沉啊,自己定,在线等
20分
public String getIs() {
        return id;
    }
    public void setIs(String id) {
        this.id = id;
    }
错了,应该是getId,setId吧

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明SSH架构,就是更新数据库的时候一直更新不进去,好像是对象null的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!