Jerome
Developper, also a human with common sense and a will to make this world a better place.
Package SQL : android.database.sqlite
static final String[] lesContreps ={ "La pièce du fond", "Salut Fred", "il fait chaud et beau", "La philantropie de l'ouvrier charpentier", "Art de décaler les sons",
....
@DatabaseTable(tableName = "farma")
public class Pharmacie implements Serializable { ... @DatabaseField(generatedId = true, index = true, columnName = Fields.ID) Integer id; @DatabaseField(columnName = Fields.NOM) public String nom; @DatabaseField(columnName = Fields.ADRESSE) public String adresse; @DatabaseField(foreign = true, foreignAutoRefresh = true, foreignAutoCreate = true, columnName = Fields.VILLE) Ville ville; @DatabaseField(columnName = Fields.LATITUDE) public Double lat; @DatabaseField(columnName = Fields.LONGITUDE) public Double longi;
....
public DatabaseHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION , R.raw.ormlite_config);
public class DatabaseHelper extends OrmLiteSqliteOpenHelper
{ private static DatabaseHelper instance; public static synchronized DatabaseHelper getHelper(Context context) { if (instance == null) instance = new DatabaseHelper(context); return instance; } //Other stuff... }
public interface Fields { public static final String NOMTABLE="pharma";
public static final String NOM="NOM";
public static final String CODEPOSTAL="CODEPOSTAL"; ...
permet d'écrire
queryBuilder.where().eq(Fields.NOM, "foo") .and() .eq(Fields.CODEPOSTAL, "78150");qui équivaut àSELECT * FROM pharma WHERE (nom = 'foo' AND codepostal = '78150')Mais, en bénéficiant de l'auto-completion lors de l'écriture.
Je recommande de créer une interface "Fields" à mettre dans chaque objet du modèle métier. Et de faire de même dans chaque objet métier
public class Pharmacie {
...
@DatabaseField(foreign = true, foreignAutoRefresh = true, foreignAutoCreate = true, columnName = Fields.VILLE) Ville ville;
...
}
By Jerome
Panorama des solutions pour stocker des données structurées sous Android. Avec une attention particuliere pour ORMLite