code: public <T> T queryForObject(String sql,
                                  Map<String, Object> vars,
                                  Map<String, Object> params,
                                  Class<T> classOfT) {
          Sql sqlObj = createSqlObj(sql, params);
          sqlObj.setCallback(new SqlCallback() {
              public Object invoke(Connection conn, ResultSet rs, Sql sql) throws SQLException {
                  if (null != rs && rs.next())
                      return rs.getObject(1);
                  return null;
              }
          });
  
          execute(sqlObj, vars, params);
          return sqlObj.getObject(classOfT);
      }
docs: 执行一个SQL查询操作，结果为给定对象类型的对象，适用于明确SQL查询结果的类型。
  
  @param sql
  包含变量占位符的SQL
  @param vars
  变量map，无参数时，可为null
  @param params
  参数map，无参数时，可为null
  @param classOfT
  对象类型，SQL查询结果所对应的类型，如Date.class等
  
  @return 对象，无查询结果时返回null