docs: @Override
      public synchronized void close() {
          if (isClosed()) {
              return;
          }
  
          // Close statements
  
          if (this.findCatByIDStatement != null) {
              try {
                  this.findCatByIDStatement.close();
              } catch (SQLException e) {
                  LOGGER.log(Level.SEVERE, e.getMessage(), e);
              }
          }
  
          if (this.findDataByIDStatement != null) {
              try {
                  this.findDataByIDStatement.close();
              } catch (SQLException e) {
                  LOGGER.log(Level.SEVERE, e.getMessage(), e);
              }
          }
  
          if (this.findLocByIDStatement != null) {
              try {
                  this.findLocByIDStatement.close();
              } catch (SQLException e) {
                  LOGGER.log(Level.SEVERE, e.getMessage(), e);
              }
          }
  
          if (this.insertPoiCatStatement != null) {
              try {
                  this.insertPoiCatStatement.close();
              } catch (SQLException e) {
                  LOGGER.log(Level.SEVERE, e.getMessage(), e);
              }
          }
  
          if (this.insertPoiDataStatement != null) {
              try {
                  this.insertPoiDataStatement.close();
              } catch (SQLException e) {
                  LOGGER.log(Level.SEVERE, e.getMessage(), e);
              }
          }
  
          if (this.insertPoiLocStatement != null) {
              try {
                  this.insertPoiLocStatement.close();
              } catch (SQLException e) {
                  LOGGER.log(Level.SEVERE, e.getMessage(), e);
              }
          }
  
          if (this.deletePoiCatStatement != null) {
              try {
                  this.deletePoiCatStatement.close();
              } catch (SQLException e) {
                  LOGGER.log(Level.SEVERE, e.getMessage(), e);
              }
          }
  
          if (this.deletePoiDataStatement != null) {
              try {
                  this.deletePoiDataStatement.close();
              } catch (SQLException e) {
                  LOGGER.log(Level.SEVERE, e.getMessage(), e);
              }
          }
  
          if (this.deletePoiLocStatement != null) {
              try {
                  this.deletePoiLocStatement.close();
              } catch (SQLException e) {
                  LOGGER.log(Level.SEVERE, e.getMessage(), e);
              }
          }
  
          if (this.isValidDBStatement != null) {
              try {
                  this.isValidDBStatement.close();
              } catch (SQLException e) {
                  LOGGER.log(Level.SEVERE, e.getMessage(), e);
              }
          }
  
          if (this.metadataStatement != null) {
              try {
                  this.metadataStatement.close();
              } catch (SQLException e) {
                  LOGGER.log(Level.SEVERE, e.getMessage(), e);
              }
          }
  
          // Close connection
          if (this.conn != null) {
              try {
                  this.conn.close();
              } catch (SQLException e) {
                  LOGGER.log(Level.SEVERE, e.getMessage(), e);
              }
          }
  
          this.poiFile = null;
      }