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