如何使用spring和hibernate从DB检索数据并在jsp中打印?

时间:2019-01-20 12:23:03

标签: spring hibernate spring-mvc web-applications hibernate-mapping

我已经写了将数据插入数据库的代码,但是对于如何以json格式检索数据并使用jQuery数据表在jsp视图中进行打印,我有些困惑。我已经写了一些关于检索的代码,但是我仍然被卡住。请帮忙。

这是我的代码段:

实体类:

package model.entity;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.Size;

@Entity
public class Products {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int productId;
    @Size(min=1)
    private String productName;
    @Min(value=1, message = "Value cannot be zero or negative")
    private double unitPrice;
    @Size(min=1)
    private String productDescription;
    @Size(min=1)
    private String category;
    @Min(value = 1, message = " Quantity should be greater than zero and positive")
    @Max(value= 99, message = " Quantity limit exceeded, value should be less than 100")
    private int productQty;

    public Products() {}

    public Products(int productId, String productName, double unitPrice, String productDescription, String category, int productQty) {
        super();
        this.productQty = productQty;
        this.productId = productId;
        this.productName = productName;
        this.unitPrice = unitPrice;
        this.productDescription = productDescription;
        this.category = category;
    }

    public int getProductQty() {
        return productQty;
    }

    public void setProductQty(int productQty) {
        this.productQty = productQty;
    }

    public int getProductId() {
        return productId;
    }

    public void setProductId(int productId) {
        this.productId = productId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public double getUnitPrice() {
        return unitPrice;
    }

    public void setUnitPrice(double unitPrice) {
        this.unitPrice = unitPrice;
    }

    public String getProductDescription() {
        return productDescription;
    }

    public void setProductDescription(String productDescription) {
        this.productDescription = productDescription;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

DAOImplementation类:

    package model.daoimpl;

    import java.util.List;

    import org.hibernate.Session;

    import model.config.HibernateUtil;
    import model.dao.IProductsDAO;
    import model.entity.Products;

    public class ProductsDAOImpl implements IProductsDAO {
        private Session sess;
        public ProductsDAOImpl() {
            sess = HibernateUtil.getSessionFactory().openSession();
        }
        public boolean insertProduct(Products p) {
    boolean b = true;

            try
            {
                sess.beginTransaction();
                sess.save(p);
                sess.getTransaction().commit();

            }catch(Exception ex)
            {
                b = false;
                sess.getTransaction().rollback();
                ex.printStackTrace();
            }

            return b;
        }

        public List<Products> getProducts()
        {
            List<Products> lp = null;
            try
            {
                sess.beginTransaction();
                lp = sess.createQuery("from Product",Products.class).getResultList();       
            }catch(Exception ex)
            {
                ex.printStackTrace();
            }
            return lp;
        }   

        }

控制器类:

@Controller
public class ProductController {
    @RequestMapping(value="/manageproducts", method= RequestMethod.GET)
    public String manageProductPage() {
        return "manageproducts";
    }

    @RequestMapping(value="/insertproducts",method = RequestMethod.POST)
    public String addInserProductsPage(@ModelAttribute("Products")Products p) {
        IProductsDAO ip = new ProductsDAOImpl();
        boolean b = ip.insertProduct(p);
        if(b)
            return "success";
        else
            return "manageproducts";
    }

    @RequestMapping(value="/listproducts", method = RequestMethod.GET)
    public List<Products> listAllProducts(){
        IProductsDAO ip = new ProductsDAOImpl();
        return ip.getProducts();
    }

}

如您所见,我已经创建了getproducts函数,但是我还没有创建用于显示要使用jQuery数据表的产品的视图,而且我对如何用我的视图映射视图有些困惑控制器。所以请帮忙。

1 个答案:

答案 0 :(得分:2)

您可以使用模型将列表发送到视图页面

    @RequestMapping(value="/listproducts",      method = RequestMethod.GET) 
    public String listAllProducts(Model model){
        IProductsDAO ip = new ProductsDAOImpl(); 
        List<Products> products = ip.getProducts(); 
        model.addAttribute ("products",products);
        Return "your view name without .jsp";
      }