Ejemplos

José Antonio Fuentes Santiago edited this page May 27, 2013 · 2 revisions

Table of Contents

Consulta personalizada con cadena

En este primer ejemplo se puede observar la ejecución de una consulta personalizada a partir de una cadena. Para ello se observa que tan sólo hay que llamar al método executeQuery() heredado de GenericQuery.

CopyQuery.class

public class CopyQuery extends GenericQuery<Copy> {
  @SuppressWarnings("unchecked")
  public List<Map<String, String>> getData() {
    return (List<Map<String, String>>) executeQuery("SELECT * FROM File AS f, Copy AS c WHERE f._id = c.file");
  }
}

Ejecución de la consulta

final List<Map<String, String>> copies = copyQuery.getData();
if (null == copies) {
  Toast.makeText(this, "Problema al ejecutar la consulta", Toast.LENGTH_SHORT).show();
} else {
  TextView text;
  StringBuilder objBuilder = new StringBuilder();
  for (final Map<String, String> current : copies) {
    objBuilder.setLength(0);
    for (String key : current.keySet()) {
      objBuilder.append(key);
      objBuilder.append('=');
      objBuilder.append(current.get(key));
      objBuilder.append(';');
    }
    text = new TextView(this);
    text.setText(objBuilder.toString());
    layout.addView(texto);
  }
}

Consulta personalizada con objeto Query

En esta ocasión se utilizará un objeto de tipo Query para realizar las consultas. El método findByPath() devolverá aquellas filas donde el path coincida con el recibido. Se puede observar como se añade la condición y posteriormente el argumento con el path.

En el método updateVersion() se actualizará la versión del fichero cuya id se ha recibido. Para observar si el fichero se ha actualizado, se ha analizado el número de filas.

FileQuery.class

public class FileQuery extends GenericQuery<File> {
  @SuppressWarnings("unchecked")
  public List<File> findByPath(final String path) throws JaiberdroidException {
    final Query query = new Query(Query.Type.SELECT, File.class);
    query.setCondition("path = ?");
    query.addArg(path);

    return (List<File>) executeQuery(query);
  }

  public boolean updateVersion(final int id, final Integer version) throws JaiberdroidException {
    final Query query = new Query(Query.Type.UPDATE, File.class);
    query.setCondition("_id = ?");
    query.addArg(id);
    query.addValue("version", version);
    query.setTransactional(true);

    final long rows = (Long) executeQuery(query);
    return (rows > 0);
  }
}

Ejecución de findByPath()

final List<File> files = fileQuery.findByPath("/mi_ruta/");
if (null == files) {
  Toast.makeText(this, "Problema al ejecutar la consulta", Toast.LENGTH_SHORT).show();
} else {
  TextView texto;
  StringBuilder objBuilder = new StringBuilder();
  for (final File current : files) {
    texto = new TextView(this);
    texto.setText(file.toString());
    layout.addView(texto);
  }
}

Ejecución de updateVersion()

boolean result = fileQuery.updateVersion(current_id, version_var);
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.