List of usage examples for java.sql PreparedStatement setDate
void setDate(int parameterIndex, java.sql.Date x) throws SQLException;
java.sql.Date
value using the default time zone of the virtual machine that is running the application. From source file:nl.ordina.bag.etl.dao.AbstractBAGDAO.java
@Override public void update(final Pand pand) throws DAOException { try {//from ww w. j a va 2s . c o m jdbcTemplate.update(new PreparedStatementCreator() { @Override public PreparedStatement createPreparedStatement(Connection connection) throws SQLException { PreparedStatement ps = connection.prepareStatement("update bag_pand set" + " aanduiding_record_inactief = ?," + " officieel = ?," + " pand_geometrie = ?," + " bouwjaar = ?," + " pand_status = ?," + " einddatum_tijdvak_geldigheid = ?," + " in_onderzoek = ?," + " bron_documentdatum = ?," + " bron_documentnummer = ?" + " where bag_pand_id = ?" + " and aanduiding_record_correctie = ?" + " and begindatum_tijdvak_geldigheid = ?"); ps.setInt(1, pand.getAanduidingRecordInactief().ordinal()); ps.setInt(2, pand.getOfficieel().ordinal()); ps.setString(3, pand.getPandGeometrie()); ps.setInt(4, pand.getBouwjaar()); ps.setString(5, pand.getPandStatus()); if (pand.getEinddatumTijdvakGeldigheid() == null) ps.setNull(6, Types.TIMESTAMP); else ps.setTimestamp(6, new Timestamp(pand.getEinddatumTijdvakGeldigheid().getTime())); ps.setInt(7, pand.getInOnderzoek().ordinal()); ps.setDate(8, new Date(pand.getDocumentdatum().getTime())); ps.setString(9, pand.getDocumentnummer()); ps.setLong(10, pand.getIdentificatie()); ps.setLong(11, pand.getAanduidingRecordCorrectie()); ps.setTimestamp(12, new Timestamp(pand.getBegindatumTijdvakGeldigheid().getTime())); return ps; } }); } catch (DataAccessException e) { throw new DAOException("Error updating pand: " + pand.getIdentificatie(), e); } }
From source file:nl.ordina.bag.etl.dao.AbstractBAGDAO.java
@Override public void insertWoonplaatsen(final List<Woonplaats> woonplaatsen) throws DAOException { try {/*from ww w .j a v a 2s . c o m*/ jdbcTemplate.batchUpdate("insert into bag_woonplaats (" + "bag_woonplaats_id," + "aanduiding_record_inactief," + "aanduiding_record_correctie," + "woonplaats_naam," + "woonplaats_geometrie," + "officieel," + "begindatum_tijdvak_geldigheid," + "einddatum_tijdvak_geldigheid," + "in_onderzoek," + "bron_documentdatum," + "bron_documentnummer," + "woonplaats_status" + ") values (?,?,?,?,?,?,?,?,?,?,?,?)", new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { ps.setLong(1, woonplaatsen.get(i).getIdentificatie()); ps.setInt(2, woonplaatsen.get(i).getAanduidingRecordInactief().ordinal()); ps.setLong(3, woonplaatsen.get(i).getAanduidingRecordCorrectie()); ps.setString(4, woonplaatsen.get(i).getWoonplaatsNaam()); ps.setString(5, woonplaatsen.get(i).getWoonplaatsGeometrie()); ps.setInt(6, woonplaatsen.get(i).getOfficieel().ordinal()); ps.setTimestamp(7, new Timestamp(woonplaatsen.get(i).getBegindatumTijdvakGeldigheid().getTime())); if (woonplaatsen.get(i).getEinddatumTijdvakGeldigheid() == null) ps.setNull(8, Types.TIMESTAMP); else ps.setTimestamp(8, new Timestamp( woonplaatsen.get(i).getEinddatumTijdvakGeldigheid().getTime())); ps.setInt(9, woonplaatsen.get(i).getInOnderzoek().ordinal()); ps.setDate(10, new Date(woonplaatsen.get(i).getDocumentdatum().getTime())); ps.setString(11, woonplaatsen.get(i).getDocumentnummer()); ps.setInt(12, woonplaatsen.get(i).getWoonplaatsStatus().ordinal()); } @Override public int getBatchSize() { return woonplaatsen.size(); } }); } catch (DataAccessException e) { throw new DAOException("Error inserting woonplaatsen", e); } }
From source file:nl.ordina.bag.etl.dao.AbstractBAGDAO.java
@Override public void insertPanden(final List<Pand> panden) throws DAOException { try {//from w ww. ja va 2 s.c om jdbcTemplate.batchUpdate("insert into bag_pand (" + "bag_pand_id," + "aanduiding_record_inactief," + "aanduiding_record_correctie," + "officieel," + "pand_geometrie," + "bouwjaar," + "pand_status," + "begindatum_tijdvak_geldigheid," + "einddatum_tijdvak_geldigheid," + "in_onderzoek," + "bron_documentdatum," + "bron_documentnummer" + ") values (?,?,?,?,?,?,?,?,?,?,?,?)", new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { ps.setLong(1, panden.get(i).getIdentificatie()); ps.setInt(2, panden.get(i).getAanduidingRecordInactief().ordinal()); ps.setLong(3, panden.get(i).getAanduidingRecordCorrectie()); ps.setInt(4, panden.get(i).getOfficieel().ordinal()); ps.setString(5, panden.get(i).getPandGeometrie()); ps.setInt(6, panden.get(i).getBouwjaar()); ps.setString(7, panden.get(i).getPandStatus()); ps.setTimestamp(8, new Timestamp(panden.get(i).getBegindatumTijdvakGeldigheid().getTime())); if (panden.get(i).getEinddatumTijdvakGeldigheid() == null) ps.setNull(9, Types.TIMESTAMP); else ps.setTimestamp(9, new Timestamp(panden.get(i).getEinddatumTijdvakGeldigheid().getTime())); ps.setInt(10, panden.get(i).getInOnderzoek().ordinal()); ps.setDate(11, new Date(panden.get(i).getDocumentdatum().getTime())); ps.setString(12, panden.get(i).getDocumentnummer()); } @Override public int getBatchSize() { return panden.size(); } }); } catch (DataAccessException e) { throw new DAOException("Error inserting panden", e); } }
From source file:sopho.Ofeloumenoi.EditOfeloumenoiController.java
@FXML public void Save(ActionEvent event) throws IOException { if (barcode.getText().isEmpty() || onoma.getText().isEmpty() || eponimo.getText().isEmpty() || patronimo.getText().isEmpty()) { //checking if the user has filled the required fields sopho.Messages.CustomMessageController cm = new sopho.Messages.CustomMessageController(null, "?!", " ? ? . ? ? Barcode, , ? ? ? ?", "error"); cm.showAndWait();// w w w .j av a 2 s . c om } else if (!NumberUtils.isNumber(barcode.getText()) && !barcode.getText().isEmpty()) { sopho.Messages.CustomMessageController cm = new sopho.Messages.CustomMessageController(null, "?!", " barcode ? ? ??. ? ? .", "error"); cm.showAndWait(); } else if (!NumberUtils.isNumber(eisodima.getText()) && !eisodima.getText().isEmpty()) { sopho.Messages.CustomMessageController cm = new sopho.Messages.CustomMessageController(null, "?!", " ? ? ??. ? ? .", "error"); cm.showAndWait(); } else {//the user has filled the required fields. We can proceed. sopho.DBClass db = new sopho.DBClass(); Connection conn = null; PreparedStatement pst = null; ResultSet rset = null; String teknaDB = ""; //we create a var to push data to db. for (int i = 0; i < tekna.getItems().size(); i++) {//we are converting the table rows to a single comma separated string to push it to the database in a single entry. tableManager tbl = (tableManager) tekna.getItems().get(i); if (!tbl.getEtos().equals("? ")) { //we are checking if the user has actually entered a number teknaDB += tbl.getEtos() + ","; //we have to call getEtos from the tableManager class to get the actual value. We add the value to teknaDB and seperate with comma. arithmosTeknon++; } } if (arithmosTeknon > 0) {// we need to catch the case that the user has not added any data to the table. teknaDB = teknaDB.substring(0, teknaDB.length() - 1); // we have to remove the last comma. } conn = db.ConnectDB(); try { // we can push the data to database... String sql = "UPDATE ofeloumenoi SET barcode=?, eponimo=?, onoma=?, patronimo=?, mitronimo=?, imGennisis=?, dieuthinsi=?, dimos=?, tilefono=?, anergos=?, epaggelma=?, eisodima=?, eksartiseis=?, photoID=?, afm=?, tautotita=?, ethnikotita=?, metanastis=?, roma=?, oikKatastasi=?, hasTekna=?, arithmosTeknon=?, ilikiesTeknon=?, politeknos=?, monogoneiki=?, mellousaMama=?, amea=?, asfForeas=?, xronios=?, pathisi=?, anoTon60=?, monaxikos=?, emfiliVia=?, spoudastis=?, anenergos=?, loipa=? WHERE barcode=?"; pst = conn.prepareStatement(sql); //now we will set the values to the sql statement pst.setString(1, barcode.getText()); pst.setString(2, eponimo.getText()); pst.setString(3, onoma.getText()); pst.setString(4, patronimo.getText()); pst.setString(5, mitronimo.getText()); //now we have to convert the imGennisis to a suitable format to be able to push it to the database if (imGennisis.getValue() != null) { Date date = Date.from(imGennisis.getValue().atStartOfDay(ZoneId.systemDefault()).toInstant()); java.sql.Date sqlDate = new java.sql.Date(date.getTime()); pst.setDate(6, sqlDate); } else { pst.setDate(6, null); } pst.setString(7, dieuthinsi.getText()); pst.setString(8, dimos.getText()); pst.setString(9, tilefono.getText()); pst.setInt(10, anergos.isSelected() ? 1 : 0); //set 1 if selected and 0 if not. We will use this method for all the checkboxes. pst.setString(11, epaggelma.getText()); pst.setString(12, eisodima.getText()); pst.setString(13, eksartiseis.getText()); pst.setString(14, PhotoID); pst.setString(15, afm.getText()); pst.setString(16, tautotita.getText()); pst.setString(17, ethnikotita.getText()); pst.setInt(18, metanastis.isSelected() ? 1 : 0); pst.setInt(19, roma.isSelected() ? 1 : 0); pst.setInt(20, (int) oikKatastasi.getSelectionModel().getSelectedIndex());//we are pushing to database the selected index pst.setInt(21, arithmosTeknon > 0 ? 1 : 0); //checking number of tekna. if >0 has tekna gets 1 pst.setInt(22, arithmosTeknon); pst.setString(23, teknaDB); //here we use the converted to comma separated values variable in order to save the tableView data using only one field in database. pst.setInt(24, politeknos.isSelected() ? 1 : 0); pst.setInt(25, monogoneiki.isSelected() ? 1 : 0); pst.setInt(26, mellousaMama.isSelected() ? 1 : 0); pst.setInt(27, amea.isSelected() ? 1 : 0); pst.setInt(28, (int) asfForeas.getSelectionModel().getSelectedIndex());//we are pushing to database the selected index pst.setInt(29, xronios.isSelected() ? 1 : 0); pst.setString(30, pathisi.getText()); pst.setInt(31, monaxiko.isSelected() ? 1 : 0); pst.setInt(32, anoTon60.isSelected() ? 1 : 0); pst.setInt(33, emfiliVia.isSelected() ? 1 : 0); pst.setInt(34, spoudastis.isSelected() ? 1 : 0); pst.setInt(35, anenergos.isSelected() ? 1 : 0); pst.setString(36, loipa.getText()); pst.setString(37, oldBarcode); // we update the values to the database table where barcode = oldBarcode System.out.println("the query is:" + pst.toString()); int linesAffected = pst.executeUpdate(); //checking if the data were inserted to the database successfully if (linesAffected > 0) { sopho.Messages.CustomMessageController cm = new sopho.Messages.CustomMessageController(null, "!", " ? ? , ? .", "confirm"); cm.showAndWait(); if (le.LockEditing(false, selID, "ofeloumenoi")) { Stage stage = (Stage) barcode.getScene().getWindow(); sl.StageLoad("/sopho/Ofeloumenoi/OfeloumenoiMain.fxml", stage, true, false); //resizable true, utility false } else { sopho.Messages.CustomMessageController cm2 = new sopho.Messages.CustomMessageController( null, "?", " ? ? ?. ? ? . ? ? ? ??.", "error"); cm2.showAndWait(); } } else {//problem inserting data... sopho.Messages.CustomMessageController cm = new sopho.Messages.CustomMessageController(null, "?!", " ? ?? . ? ...", "error"); cm.showAndWait(); } } catch (SQLException e) { System.out.println( "? ? ? !" + e); } } }
From source file:nl.ordina.bag.etl.dao.AbstractBAGDAO.java
@Override public void insertOpenbareRuimten(final List<OpenbareRuimte> openbareRuimten) throws DAOException { try {/*from ww w .j a v a2 s.co m*/ jdbcTemplate.batchUpdate("insert into bag_openbare_ruimte (" + "bag_openbare_ruimte_id," + "aanduiding_record_inactief," + "aanduiding_record_correctie," + "openbare_ruimte_naam," + "officieel," + "begindatum_tijdvak_geldigheid," + "einddatum_tijdvak_geldigheid," + "in_onderzoek," + "openbare_ruimte_type," + "bron_documentdatum," + "bron_documentnummer," + "openbareruimte_status," + "bag_woonplaats_id," + "verkorte_openbare_ruimte_naam" + ") values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)", new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { ps.setLong(1, openbareRuimten.get(i).getIdentificatie()); ps.setInt(2, openbareRuimten.get(i).getAanduidingRecordInactief().ordinal()); ps.setLong(3, openbareRuimten.get(i).getAanduidingRecordCorrectie()); ps.setString(4, openbareRuimten.get(i).getOpenbareRuimteNaam()); ps.setInt(5, openbareRuimten.get(i).getOfficieel().ordinal()); ps.setTimestamp(6, new Timestamp( openbareRuimten.get(i).getBegindatumTijdvakGeldigheid().getTime())); if (openbareRuimten.get(i).getEinddatumTijdvakGeldigheid() == null) ps.setNull(7, Types.TIMESTAMP); else ps.setTimestamp(7, new Timestamp( openbareRuimten.get(i).getEinddatumTijdvakGeldigheid().getTime())); ps.setInt(8, openbareRuimten.get(i).getInOnderzoek().ordinal()); ps.setInt(9, openbareRuimten.get(i).getOpenbareRuimteType().ordinal()); ps.setDate(10, new Date(openbareRuimten.get(i).getDocumentdatum().getTime())); ps.setString(11, openbareRuimten.get(i).getDocumentnummer()); ps.setInt(12, openbareRuimten.get(i).getOpenbareruimteStatus().ordinal()); ps.setLong(13, openbareRuimten.get(i).getGerelateerdeWoonplaats()); ps.setString(14, openbareRuimten.get(i).getVerkorteOpenbareRuimteNaam()); } @Override public int getBatchSize() { return openbareRuimten.size(); } }); } catch (DataAccessException e) { throw new DAOException("Error inserting openbare ruimten", e); } }
From source file:nl.ordina.bag.etl.dao.AbstractBAGDAO.java
@Override public void update(final Woonplaats woonplaats) throws DAOException { try {/*from w w w . j a v a 2 s . com*/ jdbcTemplate.update(new PreparedStatementCreator() { @Override public PreparedStatement createPreparedStatement(Connection connection) throws SQLException { PreparedStatement ps = connection.prepareStatement("update bag_woonplaats set" + " aanduiding_record_inactief = ?," + " woonplaats_naam = ?," + " woonplaats_geometrie = ?," + " officieel = ?," + " einddatum_tijdvak_geldigheid = ?," + " in_onderzoek = ?," + " bron_documentdatum = ?," + " bron_documentnummer = ?," + " woonplaats_status = ?" + " where bag_woonplaats_id = ?" + " and aanduiding_record_correctie = ?" + " and begindatum_tijdvak_geldigheid = ?"); ps.setInt(1, woonplaats.getAanduidingRecordInactief().ordinal()); ps.setString(2, woonplaats.getWoonplaatsNaam()); ps.setString(3, woonplaats.getWoonplaatsGeometrie()); ps.setInt(4, woonplaats.getOfficieel().ordinal()); if (woonplaats.getEinddatumTijdvakGeldigheid() == null) ps.setNull(5, Types.TIMESTAMP); else ps.setTimestamp(5, new Timestamp(woonplaats.getEinddatumTijdvakGeldigheid().getTime())); ps.setInt(6, woonplaats.getInOnderzoek().ordinal()); ps.setDate(7, new Date(woonplaats.getDocumentdatum().getTime())); ps.setString(8, woonplaats.getDocumentnummer()); ps.setInt(9, woonplaats.getWoonplaatsStatus().ordinal()); ps.setLong(10, woonplaats.getIdentificatie()); ps.setLong(11, woonplaats.getAanduidingRecordCorrectie()); ps.setTimestamp(12, new Timestamp(woonplaats.getBegindatumTijdvakGeldigheid().getTime())); return ps; } }); } catch (DataAccessException e) { throw new DAOException("Error updating woonplaats: " + woonplaats.getIdentificatie(), e); } }
From source file:nl.ordina.bag.etl.dao.AbstractBAGDAO.java
@Override public void insertLigplaatsen(final List<Ligplaats> ligplaatsen) throws DAOException { try {/*from w ww . j av a 2s . com*/ transactionTemplate.execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus status) { jdbcTemplate.batchUpdate("insert into bag_ligplaats (" + "bag_ligplaats_id," + "aanduiding_record_inactief," + "aanduiding_record_correctie," + "officieel," + "ligplaats_status," + "ligplaats_geometrie," + "begindatum_tijdvak_geldigheid," + "einddatum_tijdvak_geldigheid," + "in_onderzoek," + "bron_documentdatum," + "bron_documentnummer," + "bag_nummeraanduiding_id" + ") values (?,?,?,?,?,?,?,?,?,?,?,?)", new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { ps.setLong(1, ligplaatsen.get(i).getIdentificatie()); ps.setInt(2, ligplaatsen.get(i).getAanduidingRecordInactief().ordinal()); ps.setLong(3, ligplaatsen.get(i).getAanduidingRecordCorrectie()); ps.setInt(4, ligplaatsen.get(i).getOfficieel().ordinal()); ps.setInt(5, ligplaatsen.get(i).getLigplaatsStatus().ordinal()); ps.setString(6, ligplaatsen.get(i).getLigplaatsGeometrie()); ps.setTimestamp(7, new Timestamp( ligplaatsen.get(i).getBegindatumTijdvakGeldigheid().getTime())); if (ligplaatsen.get(i).getEinddatumTijdvakGeldigheid() == null) ps.setNull(8, Types.TIMESTAMP); else ps.setTimestamp(8, new Timestamp( ligplaatsen.get(i).getEinddatumTijdvakGeldigheid().getTime())); ps.setInt(9, ligplaatsen.get(i).getInOnderzoek().ordinal()); ps.setDate(10, new Date(ligplaatsen.get(i).getDocumentdatum().getTime())); ps.setString(11, ligplaatsen.get(i).getDocumentnummer()); ps.setLong(12, ligplaatsen.get(i).getHoofdAdres()); } @Override public int getBatchSize() { return ligplaatsen.size(); } }); insertNevenadressen(TypeAdresseerbaarObject.LIGPLAATS, ligplaatsen); } }); } catch (DataAccessException e) { throw new DAOException("Error inserting ligplaatsen", e); } }
From source file:nl.ordina.bag.etl.dao.AbstractBAGDAO.java
@Override public void update(final Pand origineel, final Pand mutation) throws DAOException { try {/*from w ww .j a v a2 s . c o m*/ jdbcTemplate.update(new PreparedStatementCreator() { @Override public PreparedStatement createPreparedStatement(Connection connection) throws SQLException { PreparedStatement ps = connection.prepareStatement("update bag_pand set" + " aanduiding_record_inactief = ?," + " aanduiding_record_correctie = ?," + " officieel = ?," + " pand_geometrie = ?," + " bouwjaar = ?," + " pand_status = ?," + " einddatum_tijdvak_geldigheid = ?," + " in_onderzoek = ?," + " bron_documentdatum = ?," + " bron_documentnummer = ?" + " where bag_pand_id = ?" + " and aanduiding_record_correctie = ?" + " and begindatum_tijdvak_geldigheid = ?"); ps.setInt(1, mutation.getAanduidingRecordInactief().ordinal()); ps.setLong(2, mutation.getAanduidingRecordCorrectie()); ps.setInt(3, mutation.getOfficieel().ordinal()); ps.setString(4, mutation.getPandGeometrie()); ps.setInt(5, mutation.getBouwjaar()); ps.setString(6, mutation.getPandStatus()); if (mutation.getEinddatumTijdvakGeldigheid() == null) ps.setNull(7, Types.TIMESTAMP); else ps.setTimestamp(7, new Timestamp(mutation.getEinddatumTijdvakGeldigheid().getTime())); ps.setInt(8, mutation.getInOnderzoek().ordinal()); ps.setDate(9, new Date(mutation.getDocumentdatum().getTime())); ps.setString(10, mutation.getDocumentnummer()); ps.setLong(11, origineel.getIdentificatie()); ps.setLong(12, origineel.getAanduidingRecordCorrectie()); ps.setTimestamp(13, new Timestamp(origineel.getBegindatumTijdvakGeldigheid().getTime())); return ps; } }); } catch (DataAccessException e) { throw new DAOException("Error updating pand: " + origineel.getIdentificatie(), e); } }
From source file:nl.ordina.bag.etl.dao.AbstractBAGDAO.java
@Override public void insertStandplaatsen(final List<Standplaats> standplaatsen) throws DAOException { try {//w w w . ja v a 2 s . c om transactionTemplate.execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus status) { jdbcTemplate.batchUpdate("insert into bag_standplaats (" + "bag_standplaats_id," + "aanduiding_record_inactief," + "aanduiding_record_correctie," + "officieel," + "standplaats_status," + "standplaats_geometrie," + "begindatum_tijdvak_geldigheid," + "einddatum_tijdvak_geldigheid," + "in_onderzoek," + "bron_documentdatum," + "bron_documentnummer," + "bag_nummeraanduiding_id" + ") values (?,?,?,?,?,?,?,?,?,?,?,?)", new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { ps.setLong(1, standplaatsen.get(i).getIdentificatie()); ps.setInt(2, standplaatsen.get(i).getAanduidingRecordInactief().ordinal()); ps.setLong(3, standplaatsen.get(i).getAanduidingRecordCorrectie()); ps.setInt(4, standplaatsen.get(i).getOfficieel().ordinal()); ps.setInt(5, standplaatsen.get(i).getStandplaatsStatus().ordinal()); ps.setString(6, standplaatsen.get(i).getStandplaatsGeometrie()); ps.setTimestamp(7, new Timestamp( standplaatsen.get(i).getBegindatumTijdvakGeldigheid().getTime())); if (standplaatsen.get(i).getEinddatumTijdvakGeldigheid() == null) ps.setNull(8, Types.TIMESTAMP); else ps.setTimestamp(8, new Timestamp( standplaatsen.get(i).getEinddatumTijdvakGeldigheid().getTime())); ps.setInt(9, standplaatsen.get(i).getInOnderzoek().ordinal()); ps.setDate(10, new Date(standplaatsen.get(i).getDocumentdatum().getTime())); ps.setString(11, standplaatsen.get(i).getDocumentnummer()); ps.setLong(12, standplaatsen.get(i).getHoofdAdres()); } @Override public int getBatchSize() { return standplaatsen.size(); } }); insertNevenadressen(TypeAdresseerbaarObject.STANDPLAATS, standplaatsen); } }); } catch (DataAccessException e) { throw new DAOException("Error inserting standplaatsen", e); } }
From source file:nl.ordina.bag.etl.dao.AbstractBAGDAO.java
@Override public void update(final Woonplaats origineel, final Woonplaats wijziging) throws DAOException { try {//from w w w . j ava 2 s.c om jdbcTemplate.update(new PreparedStatementCreator() { @Override public PreparedStatement createPreparedStatement(Connection connection) throws SQLException { PreparedStatement ps = connection.prepareStatement("update bag_woonplaats set" + " aanduiding_record_inactief = ?," + " aanduiding_record_correctie = ?," + " woonplaats_naam = ?," + " woonplaats_geometrie = ?," + " officieel = ?," + " einddatum_tijdvak_geldigheid = ?," + " in_onderzoek = ?," + " bron_documentdatum = ?," + " bron_documentnummer = ?," + " woonplaats_status = ?" + " where bag_woonplaats_id = ?" + " and aanduiding_record_correctie = ?" + " and begindatum_tijdvak_geldigheid = ?"); ps.setInt(1, wijziging.getAanduidingRecordInactief().ordinal()); ps.setLong(2, wijziging.getAanduidingRecordCorrectie()); ps.setString(3, wijziging.getWoonplaatsNaam()); ps.setString(4, wijziging.getWoonplaatsGeometrie()); ps.setInt(5, wijziging.getOfficieel().ordinal()); if (wijziging.getEinddatumTijdvakGeldigheid() == null) ps.setNull(6, Types.TIMESTAMP); else ps.setTimestamp(6, new Timestamp(wijziging.getEinddatumTijdvakGeldigheid().getTime())); ps.setInt(7, wijziging.getInOnderzoek().ordinal()); ps.setDate(8, new Date(wijziging.getDocumentdatum().getTime())); ps.setString(9, wijziging.getDocumentnummer()); ps.setInt(10, wijziging.getWoonplaatsStatus().ordinal()); ps.setLong(11, origineel.getIdentificatie()); ps.setLong(12, origineel.getAanduidingRecordCorrectie()); ps.setTimestamp(13, new Timestamp(origineel.getBegindatumTijdvakGeldigheid().getTime())); return ps; } }); } catch (DataAccessException e) { throw new DAOException("Error updating woonplaats: " + origineel.getIdentificatie(), e); } }