Bonjours,
Me revoila avec mon appli android pour mon stage.
L'appli doit enregistrer des coordonnées de restaurateurs en local. Les données seront téléchargées d'une base de données distantes mais on en est pas la.
Pour l'instant j'ai suivi ce tuto pour créer la base de données locale.
Je vous poste le code mais pas d'urgence, je ne m'y remettrai pas avant demain toutefois si vous avez des suggestions n'hésitez pas.
Avant que vous ne lisiez tous je vous informe qu'un message d'erreur dans les logs me dit "impossible de faire l'insert: la table favorits not exit"
Je me demande s'il n'y a pas une erreeu au niveau de la methode onCreate du BaseSQLite.java. D'ou viens cette "db" qu'elle prends en arguments?
le MainActivity.java:
Le BaseSQLite.java:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Restaurateur restaurateur1 = new Restaurateur(1, "chez bob", "brasserie", 34, "allée", "de la grande avenue", 12345,"Ville1"); Restaurateur restaurateur2 = new Restaurateur(2, "La grande Fourchette", "gastronomique", 28, "rue", "du petit chemin", 67890, "Ville2"); RestaurateursBdd uneRestaurateursBdd= new RestaurateursBdd(this); uneRestaurateursBdd.open(); uneRestaurateursBdd.insertReataurateur(restaurateur1); uneRestaurateursBdd.insertReataurateur(restaurateur2); //On verifi que l'on a bien créé les deux restaurateurs en les extrayant Restaurateur restaurateur1FromBdd = uneRestaurateursBdd.getRestaurateurWithNom(restaurateur1.getNomRestaurateur()); if (restaurateur1FromBdd != null) { Toast.makeText(this, restaurateur1FromBdd.getNomRestaurateur(), Toast.LENGTH_LONG).show(); } } }
Le Restaurateur.java:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 class BaseSQLite extends SQLiteOpenHelper { private static final String tableFavorits = "favorits"; private static final String colId = "id"; private static final String colNomRestaurateur = "nomRestaurateur"; private static final String colNoRue = "noRue"; private static final String colTypeRue = "typeRue"; private static final String colNomRue = "nomRue"; private static final String colCodePostal = "codePostal"; private static final String colNomVille = "nomVille"; private static final String colTypeReataurant = "typeRestaurant"; private static final String createTalbe = "CREATE TABLE " + tableFavorits + " (" + colId + " INTEGER PRIMARY KEY AUTOINCREMENT, " + colNomRestaurateur + " TEXT NOT NULL, " + colNoRue + " INTEGER NOT NULL, " + colTypeRue + " TEXT NOT NULL, " + colNomRue + " TEXT NOT NULL, " + colCodePostal + " INTEGER NOT NULL, " + colNomVille + " TEXT NOT NULL, " + colTypeReataurant + " TEXT);"; public BaseSQLite(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(createTalbe); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("drop table " + tableFavorits + ";"); onCreate(db); } }
Et le RestaurateursBdd.java:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98 public class Restaurateur { private int idRestaurateur; private String nomRestaurateur; private String typeRestaurant; private int noRue; private String typeRue; private String nomRue; private int codePostal; private String nomville; public Restaurateur(int idRestaurateur, String nomRestaurateur, String typeRestaurant, int noRue, String typeRue, String nomRue, int codePostal, String nomville) { super(); this.idRestaurateur = idRestaurateur; this.nomRestaurateur = nomRestaurateur; this.typeRestaurant = typeRestaurant; this.noRue = noRue; this.typeRue = typeRue; this.nomRue = nomRue; this.codePostal = codePostal; this.nomville = nomville; } public Restaurateur() { } //Getters & setters public int getCodePostal() { return codePostal; } public void setCodePostal(int codePostal) { this.codePostal = codePostal; } public String getNomville() { return nomville; } public void setNomville(String nomville) { this.nomville = nomville; } public int getIdRestaurateur() { return idRestaurateur; } public void setIdRestaurateur(int idRestaurateur) { this.idRestaurateur = idRestaurateur; } public String getNomRestaurateur() { return nomRestaurateur; } public void setNomRestaurateur(String nomRestaurateur) { this.nomRestaurateur = nomRestaurateur; } public String getTypeRestaurant() { return typeRestaurant; } public void setTypeRestaurant(String typeRestaurant) { this.typeRestaurant = typeRestaurant; } public int getNoRue() { return noRue; } public void setNoRue(int noRue) { this.noRue = noRue; } public String getTypeRue() { return typeRue; } public void setTypeRue(String typeRue) { this.typeRue = typeRue; } public String getNomRue() { return nomRue; } public void setNomRue(String nomRue) { this.nomRue = nomRue; } //toString @Override public String toString() { return "Restaurateur [idRestaurateur=" + idRestaurateur + ", nomRestaurateur=" + nomRestaurateur + ", typeRestaurant=" + typeRestaurant + ", noRue=" + noRue + ", typeRue=" + typeRue + ", nomRue=" + nomRue + "]"; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88 public class RestaurateursBdd { private static final int versionBdd = 1; private static final String nomBdd = "Restaurateurs"; private static final String tableFavorits = "favorits"; private static final String colId = "id"; private static final int numColId = 0; private static final String colNomRestaurateur = "nomRestaurateur"; private static final int numColNomRestaurateur = 1; private static final String colNoRue = "noRue"; private static final int numColNoRue = 2; private static final String colNomRue = "nomRue"; private static final int numColNomRue = 3; private static final String colCodePostal = "codePostal"; private static final int numColCodePostal = 4; private static final String colNomVille = "nomVille"; private static final int NumColNomVille = 5; private static final String colTypeRestaurant = "typeRestaurant"; private static final int NumColTypeRestaurant = 6; private static final String colTypeRue = "typeRue"; private static final int numColTypeRue = 7; private SQLiteDatabase bdd; private BaseSQLite maBaseSqlIte; public RestaurateursBdd(Context context) { maBaseSqlIte = new BaseSQLite(context, nomBdd, null, versionBdd); } public void open() { //On ouvre la base en ecriture bdd = maBaseSqlIte.getWritableDatabase(); } public void close(){ //on ferme l'accès à la BDD bdd.close(); } public SQLiteDatabase getBDD(){ return bdd; } public long insertReataurateur(Restaurateur restaurateur) { ContentValues values = new ContentValues(); //Ajout des valeures values.put(colNomRestaurateur, restaurateur.getNomRestaurateur()); values.put(colNoRue, restaurateur.getNoRue()); values.put(colTypeRue, restaurateur.getTypeRue()); values.put(colNomRue, restaurateur.getNomRue()); values.put(colTypeRestaurant, restaurateur.getTypeRestaurant()); values.put(colCodePostal, restaurateur.getCodePostal()); values.put(colNomVille, restaurateur.getNomville()); values.put(colId, restaurateur.getIdRestaurateur()); return bdd.insert(tableFavorits, null, values); } public int removeRestaurateurWithId(int id) { return bdd.delete(tableFavorits, colId + "=" + id, null); } public Restaurateur getRestaurateurWithNom(String nomRestaurateur) { Cursor c = bdd.query(tableFavorits, new String[] {colNomRestaurateur, colNoRue, colTypeRue, colNomRue, colTypeRestaurant, colCodePostal, colNomVille}, colNomRestaurateur + " like \"" + nomRestaurateur + "\"", null, null, null, null); return cursorToRestaurateur(c); } private Restaurateur cursorToRestaurateur(Cursor c) { if (c.getCount() == 0) return null; //On se place sur le premier element c.moveToFirst(); Restaurateur unRestaurateur = new Restaurateur(); //On affecte au nouveau restauraeur ses valeures unRestaurateur.setIdRestaurateur(c.getInt(numColId)); unRestaurateur.setCodePostal(c.getInt(numColCodePostal)); unRestaurateur.setNomRestaurateur(c.getString(numColNomRestaurateur)); unRestaurateur.setNomRue(c.getString(numColNomRue)); unRestaurateur.setNomville(c.getString(NumColNomVille)); unRestaurateur.setNoRue(c.getInt(numColNoRue)); unRestaurateur.setTypeRestaurant(c.getString(NumColTypeRestaurant)); unRestaurateur.setTypeRue(c.getString(numColTypeRue)); //On ferme le curseur c.close(); return unRestaurateur; } }
Partager