@Override
  public void update(Customer customer) throws SQLException {
    var sql = "update CUSTOMERS set money = ? where name = ?;";
    try (var connection = dataSource.getConnection();
        var preparedStatement = connection.prepareStatement(sql)) {
      preparedStatement.setBigDecimal(1, customer.getMoney().getAmount());
      preparedStatement.setString(2, customer.getName());
      preparedStatement.executeUpdate();
    }
  }
@Test
  void shouldUpdateCustomer() throws SQLException {
    TestUtils.executeSQL(INSERT_CUSTOMER_SQL, dataSource);

    customer.setMoney(Money.of(CurrencyUnit.USD, 99));

    customerDao.update(customer);

    try (var connection = dataSource.getConnection();
        var statement = connection.createStatement();
        ResultSet rs = statement.executeQuery(SELECT_CUSTOMERS_SQL)) {

      assertTrue(rs.next());
      assertEquals(customer.getName(), rs.getString("name"));
      assertEquals(customer.getMoney(), Money.of(USD, rs.getBigDecimal("money")));
      assertFalse(rs.next());
    }
  }