From 9f433cc6c0c0291e38467f17ea6ecfe52fd32fb7 Mon Sep 17 00:00:00 2001 From: Trebellar Date: Fri, 10 Apr 2026 09:45:40 +0200 Subject: [PATCH] Metodo Borrado Listo --- .../departamento/DepartamentoEXistDao.java | 58 ++++++++++++++++--- src/main/java/modelo/main/DeptWindow.java | 2 +- 2 files changed, 52 insertions(+), 8 deletions(-) diff --git a/src/main/java/modelo/dao/departamento/DepartamentoEXistDao.java b/src/main/java/modelo/dao/departamento/DepartamentoEXistDao.java index c914744..c3ec95b 100644 --- a/src/main/java/modelo/dao/departamento/DepartamentoEXistDao.java +++ b/src/main/java/modelo/dao/departamento/DepartamentoEXistDao.java @@ -237,14 +237,47 @@ public class DepartamentoEXistDao extends AbstractGenericDao imple @Override public boolean update(Departamento entity) { - throw new UnsupportedOperationException("Este método update debe ser implementado"); + // throw new UnsupportedOperationException("Este método update debe ser + // implementado"); + boolean exito = false; + return exito; } @Override public boolean delete(Departamento entity) { - throw new UnsupportedOperationException("Este método delete debe ser implementado"); + // throw new UnsupportedOperationException("Este método delete debe ser + // implementado"); + boolean exito = false; + int numeroDep = entity.getDeptno(); + try (Collection col = DatabaseManager.getCollection(dataSource.getUrl() + dataSource.getColeccion(), + dataSource.getUser(), dataSource.getPwd())) { + + XQueryService xqs = (XQueryService) col.getService("XQueryService", "1.0"); + xqs.setProperty("indent", "yes"); + + // Consulta de borrado para o eXide + String consulta = "update delete //DEP_ROW[DEPT_NO=" + numeroDep + "]"; + + // Ver se esta o departamento que temos que eliminar. + ResourceSet check = xqs.query("//DEP_ROW[DEPT_NO=" + numeroDep + "]"); + if (check.getSize() == 0) { + System.out.println("Non se atopa o departamento con ID " + numeroDep); + throw new InstanceNotFoundException(numeroDep, Departamento.class.getName()); + } + + // Executamos a consulta + xqs.query(consulta); + + System.out.println("Departamento co ID " + numeroDep + " eliminado con éxito."); + exito = true; + } + + catch (InstanceNotFoundException | XMLDBException e) { + e.printStackTrace(); + } + return exito; } @Override @@ -274,12 +307,23 @@ public class DepartamentoEXistDao extends AbstractGenericDao imple Resource res = null; while (i.hasMoreResources()) { - res = i.nextResource(); - departamento = stringNodeToDepartamento(res.getContent().toString()); - System.out.println(departamento.toString()); - listaDepartamentos.add(departamento); - } + try { + res = i.nextResource(); + departamento = stringNodeToDepartamento(res.getContent().toString()); + System.out.println(departamento.toString()); + listaDepartamentos.add(departamento); + } + // Non esquecer liberar os recursos + finally { + try { + ((EXistResource) res).freeResources(); + } catch (XMLDBException xe) { + departamento = null; + xe.printStackTrace(); + } + } + } } catch (XMLDBException e) { diff --git a/src/main/java/modelo/main/DeptWindow.java b/src/main/java/modelo/main/DeptWindow.java index b591d60..1cabb50 100644 --- a/src/main/java/modelo/main/DeptWindow.java +++ b/src/main/java/modelo/main/DeptWindow.java @@ -71,7 +71,7 @@ public class DeptWindow extends JFrame { departamentoServicio = new ServicioDepartamento(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - setBounds(100, 100, 847, 772); + setBounds(100, 100, 847, 550); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));