我正在尝试连接数据库,但似乎工作正常。我创建了一个对象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();
}
}