如何修复java.sql.SQLIntegrityConstraintViolationException?

时间:2019-05-05 14:35:57

标签: java mysql jdbc

我正在尝试连接数据库,但似乎工作正常。我创建了一个对象Producto并将Producto上载到数据库中。我认为问题是我创建数据库的形式。我有2个表1.带有id_categories及其名称。 2.这具有名称为id_Product的产品,也具有id_categories。这两个表由id_categories连接。

这是错误:

java.sql.SQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`lacompraalegre`.`productos`, CONSTRAINT `id_categoria` FOREIGN KEY (`id_categoria`) REFERENCES `categorias` (`id_categoria`) ON DELETE CASCADE ON UPDATE CASCADE)

这是代码:

public void insertarProducto(Producto p) {
    try {
        String query = "INSERT INTO productos (nombreProducto, numeroExistencias, id_categoria) VALUES (?,?,?); ";
        con = conexion.conectar();
        PreparedStatement pst =  con.prepareStatement(query);
        try {
        pst.setString(1, p.getNombreProducto());
        pst.setInt(2, p.getCantidadExistente());
        pst.setInt(3, p.getId_Categoria());

        }catch(NullPointerException e) {
            logger.error("Algo ha ido mal");
        }

        int insertado = pst.executeUpdate();
        if(insertado>0) {
            logger.info("Insertado correctamente");
        }else {
            logger.error("No ha sido posible insertar usuario");
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }finally {
        ConectorBD.desconexion();
    }   
}

表是enter image description here

enter image description here

0 个答案:

没有答案