code: @Override
      public void initialize(Configuration conf, InputSplit split) throws IOException, InterruptedException {
          this.setConf(conf);
          this.setTrimStrings(conf.getBoolean(TRIM_STRINGS, trimStrings));
          this.setResultSetType(conf.getInt(JDBC_RESULTSET_TYPE, resultSetType));
  
          String jdbcUrl = conf.get(JDBC_URL);
          String driverClassName = conf.get(JDBC_DRIVER_CLASS_NAME);
          // url and driver must be both unset or both present
          if (jdbcUrl == null ^ driverClassName == null) {
              throw new IllegalArgumentException(
                  "Both jdbc url and driver class name must be provided in order to configure JDBCRecordReader's datasource");
          }
          // Both set, initialiaze the datasource
          else if (jdbcUrl != null) {
              // FIXME : find a way to read wildcard properties from conf in order to fill the third argument bellow
              this.dataSource = new DriverDataSource(jdbcUrl, driverClassName, new Properties(), conf.get(JDBC_USERNAME),
                  conf.get(JDBC_PASSWORD));
          }
          this.initializeJdbc();
      }
docs: Initialize all required jdbc elements and make the reader ready for iteration.
  
  Possible configuration keys :
  <ol>
  <li>JDBCRecordReader.TRIM_STRINGS : Whether or not read strings should be trimmed before being returned. False by default</li>
  <li>JDBCRecordReader.JDBC_URL : Jdbc url to use for datastource configuration (see JDBCRecordReaderTest for examples)</li>
  <li>JDBCRecordReader.JDBC_DRIVER_CLASS_NAME : Driver class to use for datasource configuration</li>
  <li>JDBCRecordReader.JDBC_USERNAME && JDBC_PASSWORD : Username and password to use for datasource configuration</li>
  <li>JDBCRecordReader.JDBC_RESULTSET_TYPE : ResultSet type to use (int value defined in jdbc doc)</li>
  </ol>
  
  Url and driver class name are not mandatory. If one of them is specified, the other must be specified as well. If
  they are set and there already is a DataSource set in the reader, it will be discarded and replaced with the
  newly created one.
  
  @param conf a configuration for initialization
  @param split not handled yet, will be discarded