【问题标题】:How to retrieve data from DB and print in jsp using spring and hibernate?如何使用spring和hibernate从数据库中检索数据并在jsp中打印?
【发布时间】:2019-06-14 01:00:12
【问题描述】:

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

这是我的代码 sn-ps:

实体类:

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;
    }

DAO实现类:

    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 数据表的产品的视图,而且我对如何将视图映射到我的控制器。所以请帮忙。

【问题讨论】:

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


    【解决方案1】:

    您可以使用模型将您的列表发送到查看页面

        @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";
          }
    

    【讨论】:

    • 我的一个疑问是在我的 jsp 中,我的表将如何重新分配给控制器?
    • 属性名是jsp中旅游列表的名称,本例中你的列表叫做products,你可以循环显示产品
    • 这样的? ''
    • 是的,这是正确的,您可以使用 ${products.productsName} 访问值,例如,如果您想要产品名称
    • 好的,非常非常感谢
    猜你喜欢
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    • 2015-01-27
    相关资源
    最近更新 更多