@Override public Administratie load() throws IOException { Administratie administratie = new Administratie(); // todo opgave 4 try { initConnection(); Statement statement = null; statement = conn.createStatement(); ResultSet rs = statement.executeQuery("SELECT * FROM Persoon;"); while (rs.next()) { int nr = rs.getInt("persoonsnummer"); String[] voornamen = rs.getString("voornamen").split(" "); String achternaam = rs.getString("achternaam"); String tussenvoegsel = rs.getString("tussenvoegsel"); Calendar gebDat = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH); gebDat.setTime(sdf.parse(rs.getString("geboortedatum"))); String gebPlaats = rs.getString("geboorteplaats"); Geslacht geslacht = Geslacht.valueOf(rs.getString("geslacht")); Gezin ouderlijkGezin = null; administratie.addPersoon( geslacht, voornamen, achternaam, tussenvoegsel, gebDat, gebPlaats, null); } statement = conn.createStatement(); rs = statement.executeQuery("SELECT * FROM Gezin;"); while (rs.next()) { int ouder1NR = rs.getInt("ouder1"); int ouder2NR = rs.getInt("ouder2"); Persoon ouder1 = administratie.getPersoon(ouder1NR); Persoon ouder2 = administratie.getPersoon(ouder2NR); administratie.addOngehuwdGezin(ouder1, ouder2); String huwelijksDatumString = rs.getString("huwelijksdatum"); if (!huwelijksDatumString.isEmpty()) { Calendar huwelijksDatum = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH); huwelijksDatum.setTime(sdf.parse(rs.getString("huwelijksdatum"))); administratie.setHuwelijk( administratie.getGezin(rs.getInt("gezinsnummer")), huwelijksDatum); } String scheidingsDatumString = rs.getString("scheidingsdatum"); if (!scheidingsDatumString.isEmpty()) { Calendar scheidingsDatum = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH); scheidingsDatum.setTime(sdf.parse(rs.getString("scheidingsdatum"))); administratie.setScheiding( administratie.getGezin(rs.getInt("gezinsnummer")), scheidingsDatum); } } statement = conn.createStatement(); rs = statement.executeQuery("SELECT persoonsnummer,ouders FROM persoon;"); while (rs.next()) { int persoonsnummer = rs.getInt("persoonsnummer"); int ouderNR = rs.getInt("ouders"); Persoon persoon = administratie.getPersoon(persoonsnummer); Gezin gezin = administratie.getGezin(ouderNR); if (gezin != null) { persoon.setOuderlijkGezin(gezin); } } } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } finally { String fuckthis = " FUUUUUUUCK"; // closeConnection(); } return administratie; }
private void loadTestSettings() { Administratie adm = controller.getAdministratie(); Persoon piet = adm.addPersoon( Geslacht.MAN, new String[] {"Piet"}, "Swinkels", "", new GregorianCalendar(1924, Calendar.APRIL, 23), "Den Haag", null); Persoon teuntje = adm.addPersoon( Geslacht.VROUW, new String[] {"Teuntje"}, "Vries", "de", new GregorianCalendar(1927, Calendar.MAY, 5), "Doesburg", null); Gezin teuntjeEnPiet = adm.addOngehuwdGezin(teuntje, piet); Persoon gijs = adm.addPersoon( Geslacht.MAN, new String[] {"Gijs", "Jozef"}, "Swinkels", "", new GregorianCalendar(1944, Calendar.APRIL, 21), "Geldrop", teuntjeEnPiet); Persoon ferdinand = adm.addPersoon( Geslacht.MAN, new String[] {"Ferdinand", "Karel", "Helene"}, "Vuiter", "de", new GregorianCalendar(1901, Calendar.JULY, 14), "Amsterdam", null); Persoon annalouise = adm.addPersoon( Geslacht.VROUW, new String[] {"Annalouise", "Isabel", "Teuntje"}, "Vuiter", "de", new GregorianCalendar(1902, Calendar.OCTOBER, 1), "Amsterdam", null); Gezin ferdinandEnAnnalouise = adm.addHuwelijk(ferdinand, annalouise, new GregorianCalendar(1921, Calendar.MAY, 5)); Persoon louise = adm.addPersoon( Geslacht.VROUW, new String[] {"Louise", "Isabel", "Helene"}, "Vuiter", "de", new GregorianCalendar(1927, Calendar.JANUARY, 15), "Amsterdam", ferdinandEnAnnalouise); Gezin louiseAlleen = adm.addOngehuwdGezin(louise, null); Persoon mary = adm.addPersoon( Geslacht.VROUW, new String[] {"mary"}, "Vuiter", "de", new GregorianCalendar(1943, Calendar.MAY, 25), "Rotterdam", louiseAlleen); Gezin gijsEnMary = adm.addOngehuwdGezin(gijs, mary); Persoon jaron = adm.addPersoon( Geslacht.MAN, new String[] {"Jaron"}, "Swinkels", "", new GregorianCalendar(1962, Calendar.JULY, 22), "Velp", gijsEnMary); saveFile(); }
@Override public void save(Administratie admin) throws IOException { // todo opgave 4 try { initConnection(); for (Persoon p : admin.getPersonen()) { Statement statement = null; statement = conn.createStatement(); // set timeout to 30 sec statement.setQueryTimeout(30); String ouderlijkGezin = ""; if (p.getOuderlijkGezin() != null) { ouderlijkGezin = String.valueOf(p.getOuderlijkGezin().getNr()); } String query = String.format( "INSERT INTO `Persoon` VALUES(%d,'%s','%s','%s','%s','%s','%s','%s');", p.getNr(), p.getVoornamen(), p.getAchternaam(), p.getTussenvoegsel(), p.getGebDat().getTime().toString(), p.getGebPlaats(), p.getGeslacht().toString(), ouderlijkGezin); statement.executeUpdate(query); statement.close(); } for (Gezin g : admin.getGezinnen()) { Statement statement = null; statement = conn.createStatement(); // set timeout to 30 sec statement.setQueryTimeout(30); String huwelijksDatum = ""; String scheidingsDatum = ""; int ouder2 = -1; if (g.getOuder2() != null) { ouder2 = g.getOuder2().getNr(); } if (g.getHuwelijksdatum() != null) { huwelijksDatum = g.getHuwelijksdatum().getTime().toString(); } if (g.getScheidingsdatum() != null) { scheidingsDatum = g.getScheidingsdatum().getTime().toString(); } String query = String.format( "INSERT INTO `Gezin` VALUES(%d,%d,%d,'%s','%s');", g.getNr(), g.getOuder1().getNr(), ouder2, huwelijksDatum, scheidingsDatum); statement.executeUpdate(query); statement.close(); } } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } finally { // closeConnection(); } }