java.lang.ClassCastException: java.math.BigInteger не может быть приведен к java.lang.Long Spring с sql и java - PullRequest
0 голосов
/ 28 июня 2018

поэтому я сделал простой сайт, на котором я могу добавлять продукты в список (текстовую область) с помощью Spring Framework 4.0.1, я могу видеть содержимое страницы, но в текстовой области внизу есть это исключение, не позволяющее мне получать продукты в списке.

Модельный класс

package model;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 *
 * @author mkSS
 */
public class Products {
    public int product_id;
    public String productname;
    public String productstock;
    public String productdescription;

    public int getProduct_id() {
        return product_id;
    }

    public void setProduct_id(int product_id) {
        this.product_id = product_id;
    }

    public String getProductname() {
        return productname;
    }

    public void setProductname(String productname) {
        this.productname = productname;
    }

    public String getProductstock() {
        return productstock;
    }

    public void setProductstock(String productstock) {
        this.productstock = productstock;
    }

    public String getProductdescription() {
        return productdescription;
    }

    public void setProductdescription(String productdescription) {
        this.productdescription = productdescription;
    }


    public static String productList() throws ClassNotFoundException, SQLException {
    StringBuilder product_list = new StringBuilder();
    Class.forName("com.mysql.jdbc.Driver");
    try (java.sql.Connection conn= DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "miksa988");){
    Statement st= conn.createStatement();
    st.executeQuery("select productname, productstock,productdescription from products"); 
    ResultSet rs= st.getResultSet();

    while (rs.next()){

    product_list.append(rs.getString("productname"));
    product_list.append(rs.getString(", "));
    product_list.append(rs.getString("productstock"));
    product_list.append(rs.getString(", ")); 
    product_list.append(rs.getString("productdescription"));
    product_list.append(rs.getString("\n"));






    }
    } catch(SQLException ex){
      product_list.append(ex.getMessage());
    }
      return product_list.toString();
    }


    public void addProduct() throws ClassNotFoundException {
    Class.forName("com.mysql.jdbc.Driver");
    try (java.sql.Connection conn= DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "miksa988");){
    if (productname !=null && !(productname.isEmpty()) && productstock !=null && !(productstock.isEmpty()) && productdescription !=null && !(productdescription.isEmpty())){
    Statement st = conn.createStatement();
    st.execute("insert into products (productname,productstock, productdescription) values ('"+ productname + "','"+productstock+"','"+productdescription+"')");
    }  


    }catch(SQLException ex){
        System.out.println("Error while trying to connect with databse"+ex);
}
}
}

А теперь это мой контроллер класса

контроллер пакетов;

import java.sql.SQLException;
import model.Products;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class ProductController {

    @RequestMapping(value = "/product", method= RequestMethod.GET)
    public String createForm(ModelMap model) throws ClassNotFoundException, SQLException{
    model.addAttribute("product", new Products());
    model.addAttribute("products", Products.productList() );
    return "product";
    }
    @RequestMapping(value = "/product", method= RequestMethod.POST)
    public String addProduct(@ModelAttribute("product") Products product , ModelMap model) throws ClassNotFoundException ,SQLException {
        product.addProduct();
        createForm(model);
        return "product";
    }
}

и это моя страница JSP

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>E-commerce</title>
    </head>
    <body>
        <h1>Our Products</h1>
        <form:form action="product.htm" method="post" commandName="product">
            <form:label path="productname">Enter product name:</form:label></br>
            <form:input id="pname" type="text" path="productname" placeholder="product name"></form:input><br>
            <form:label path="productstock">Enter amount of items in stock:</form:label></br>
            <form:input id="pstock" type="text" path="productstock" placeholder="product stock"></form:input><br>
            <form:label path="productdescription">Enter product description:</form:label></br>
            <form:input id="pdescription" type="text" path="productdescription" placeholder="product description"></form:input><br>
            <input type="submit" value="Dodaj proizvod"/>
        </form:form>
            <label for="product_list" id="products_list_label">List of products: </label> </br>
            <textarea id="products_list" rows="20" cols="100" readonly>${products}</textarea>
    </body>
</html>

это мой SQL-запрос

 `product_id` INT NOT NULL AUTO_INCREMENT,
  `productname` VARCHAR(45) NOT NULL,
  `productstock` INT NOT NULL,
  `productdescription` VARCHAR(45) NOT NULL,
  PRIMARY KEY (`product_id`));

Произошла ошибка, когда я загружаю страницу, я вижу содержимое (эти метки и текстовую область), но в текстовой области я вижу это исключение приведения класса java lang, поэтому, когда я пытаюсь получить продукты в списке, я могу ' т. Что бы это могло быть?

...