He iniciado un nuevo proyecto llamado Jaiberdroid que es un motor de persistencia para el trabajo con SQLite en Android.

De momento está en una fase muy temprana de desarrollo, y hay parte de conexión con SQLite metida "a pelo" para hacer pruebas de forma rápida. Para que veáis un ejemplo de su funcionamiento, tan sólo necesitaríamos declarar las clases que serán las entidades y las clases de consultas. Las clases de entidades serán la representación de una tabla de base de datos, mientras que las de consulta nos permitirán, como su nombre indica realizar las diferentes consultas a base de datos.

Una clase de entidad tendría el siguiente formato:

@Table(name = "product")
public class Product {
  @Column(primary = true, nullable = false)
  private int _id;
  @Column(nullable = false, unique = true)
  private String name;
  @Column(nullable = false)
  private float price;
  @Column()
  private String description;
  ...
}

Como se puede observar, tan sólo tenemos que poner una etiqueta Table a nuestra clase, y luego etiquetas Column a cada atributo, además, lo más importante es tener métodos set de cada elemento. Ahora veamos como serán las clases Query:

public class ProductQuery extends GenericQuery<Product> {
  /**
   * Default constructor.
   * @throws SqliteException 
   */
  public ProductQuery() throws SqliteException {
    super();
  }
  ...
}

En este caso es más sencillo. Con simplemente heredar de la clase GenericQuery, ya es posible realizar las consultas de creación y eliminación de tabla, obtención de todos los datos, obtención de filas por id, inserción y actualización de elementos, comprobación de que un elemento existe, obtención del número de filas de la tabla, borrado de uno y de todos los elementos.

Como se ha visto, con poco código es posible tener una funcionalidad completa.

Podéis seguir los cambios en GitHub: https://github.com/jafs/jaiberdroid. Según avance el proyecto podréis ir viendo descargas y actualizaciones aquí.

Comparte este artículo con quien quieras
Java: toString() genérico para todas las clases
InfoBat 1.1: Nueva versión

Discussion

Leave a Comment

Your email address will not be published. Required fields are marked *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.