code: public List<List<String>> doSelectWithParams(final String sql,
  			final Map<String, Object> params,
  			final Map<String, Object> orderParams) throws SQLException {
  
  		String finalSql = sql + this.getQueryClauses(params, orderParams);
  
  		return this.doSelect(finalSql);
  	}
docs: This method executes a select using the provided parameters in the where
  clause and order orders the results based on the order parameters. Lets
  say you want to execute the following select
  {@code SELECT * from User where username = 'John' and age = '23' order by age asc}
  You to do the following: <br/>
  
  <pre>
  {@code  String sql = "SELECT * from User";}<br/>
  {@code Map<String, Object> params = new HashMap<String, Object();}<br/>
  {@code params.put("username","John");}<br/>
  {@code params.put("age","23");}<br/>
  {@code Map<String, Object> orderBy = new HashMap<String, Object();}<br/>
  {@code orderBy.put("age","asc");}<br/>
  {@code List<List<String>> result = doSelectWithParams(sql, params, orderBy);}
  </pre>
  
  This is a simple example in which you can directly send the sql as
  initially. This method should usually be used when the parameters are
  dynamically get
  
  @param sql
  the base SQL without the where clause
  @param params
  the WHERE clause prams in the format (name, value)
  @param orderParams
  the order by params if needed in the format (name, asc/desc)
  @return a list containing each row from the SELECT in a list
  @throws SQLException
  if something goes wrong while accessing the Database