StringBDD.java
10.4 KB
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
package com.example.martin.projetv5;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
/**
* Created by martin on 21/02/2017.
*/
public class StringBDD {
private static final String TABLE_EVENTS = "table_events";
private static final String COL_ID_EV = "ID_ev";
private static final int NUM_COL_ID_EV = 0;
private static final String COL_DATE = "Date";
private static final int NUM_COL_DATE = 1;
private static final String COL_HEURE_EV = "Heure_ev";
private static final int NUM_COL_HEURE_EV = 2;
private static final String COL_EVENT = "Event";
private static final int NUM_COL_EVENT = 3;
private static final String TABLE_PRISES = "table_prises";
private static final String COL_ID_P = "ID_prise";
private static final int NUM_COL_ID_P = 0;
private static final String COL_MEDOC = "Medoc";
private static final int NUM_COL_MEDOC = 1;
private static final String COL_HEURE = "Heure";
private static final int NUM_COL_HEURE = 2;
private static final String COL_BOOL = "Bool";
private static final int NUM_COL_BOOL = 3;
private static final String TABLE_MEDOCS = "table_medocs";
private static final String COL_ID_M = "ID_medoc";
private static final int NUM_COL_ID_M = 0;
private static final String COL_NOM1 = "Nom1";
private static final int NUM_COL_NOM1 = 1;
private static final String COL_NOM2 = "Nom2";
private static final int NUM_COL_NOM2 = 2;
private static final String COL_POSO = "Posologies";
private static final int NUM_COL_POSO = 3;
private static final String COL_INFOS = "Indications";
private static final int NUM_COL_INFOS = 4;
private static final String COL_LOGO = "Logo";
private static final int NUM_COL_LOGO = 5;
private SQLiteDatabase bdd;
private StringSQLite maBaseSQLite;
private static final int VERSION_BDD = 1;
public StringBDD(Context context) {
maBaseSQLite = StringSQLite.getInstance(context);
}
public void open() {
bdd = maBaseSQLite.getWritableDatabase();
}
public void close() {
bdd.close();
}
public SQLiteDatabase getBDD() {
return bdd;
}
//------- Gestion BDD event -----------
public long insertEvent(Event ev) {
//Création d'un ContentValues (fonctionne comme une HashMap)
ContentValues values = new ContentValues();
//on lui ajoute une valeur associée à une clé (qui est le nom de la colonne dans laquelle on veut mettre la valeur)
values.put(COL_ID_EV, ev.getId());
values.put(COL_DATE, ev.getDate());
values.put(COL_HEURE_EV, ev.getHeure());
values.put(COL_EVENT, ev.getEvenement());
//on insère l'objet dans la BDD via le ContentValues
return bdd.insert(TABLE_EVENTS, null, values);
}
public int getIndiceMaxEvent(){
Cursor c = bdd.rawQuery("select "+COL_ID_EV+" from "+TABLE_EVENTS,null);
return c.getCount();
}
public Event getEventWithId(Integer id){
//Récupère dans un Cursor les valeurs correspondant à une prise contenue dans la BDD (ici on sélectionne la prise grâce à son titre)
Cursor c = bdd.query(TABLE_EVENTS, new String[] {COL_ID_EV, COL_DATE, COL_HEURE_EV, COL_EVENT}, COL_ID_EV + " LIKE \"" + id +"\"", null, null, null, null);
return cursorToEvent(c);
}
//Cette méthode permet de convertir un cursor en une prise
private Event cursorToEvent(Cursor c){
//si aucun élément n'a été retourné dans la requête, on renvoie null
if (c.getCount() == 0)
return null;
//Sinon on se place sur le premier élément
c.moveToFirst();
//On créé une prise
Event ev = new Event(null,null,null,null);
//on lui affecte toutes les infos grâce aux infos contenues dans le Cursor
ev.setId(c.getInt(NUM_COL_ID_EV));
ev.setDate(c.getString(NUM_COL_DATE));
ev.setHeure(c.getString(NUM_COL_HEURE_EV));
ev.setEvenement(c.getString(NUM_COL_EVENT));
//On ferme le cursor
c.close();
//On retourne la prise
return ev;
}
//------- Gestion BDD prises -----------
public long insertPrise(Prise2 prise){
//Création d'un ContentValues (fonctionne comme une HashMap)
ContentValues values = new ContentValues();
//on lui ajoute une valeur associée à une clé (qui est le nom de la colonne dans laquelle on veut mettre la valeur)
values.put(COL_ID_P,prise.getId());
values.put(COL_MEDOC, prise.getIdMedoc());
values.put(COL_HEURE, prise.getHeure());
values.put(COL_BOOL, prise.getEffectuee());
//on insère l'objet dans la BDD via le ContentValues
return bdd.insert(TABLE_PRISES, null, values);
}
public int updatePrise(int id, Prise2 prise){
//La mise à jour d'une prise dans la BDD fonctionne plus ou moins comme une insertion
//il faut simplement préciser quelle prise on doit mettre à jour grâce à l'ID
ContentValues values = new ContentValues();
values.put(COL_ID_P, prise.getId());
values.put(COL_MEDOC, prise.getIdMedoc());
values.put(COL_HEURE, prise.getHeure());
values.put(COL_BOOL, prise.getEffectuee());
return bdd.update(TABLE_PRISES, values, COL_ID_P + " = " +id, null);
}
public int removePriseWithID(int id){
//Suppression d'une prise de la BDD grâce à l'ID
return bdd.delete(TABLE_PRISES, COL_ID_P + " = " +id, null);
}
public Prise2 getPriseWithId(Integer id){
//Récupère dans un Cursor les valeurs correspondant à une prise contenue dans la BDD (ici on sélectionne la prise grâce à son titre)
Cursor c = bdd.query(TABLE_PRISES, new String[] {COL_ID_P, COL_MEDOC, COL_HEURE, COL_BOOL}, COL_ID_P + " LIKE \"" + id +"\"", null, null, null, null);
return cursorToPrise(c);
}
public int getIndiceMaxPrise(){
Cursor c = bdd.rawQuery("select "+COL_ID_P+" from "+TABLE_PRISES,null);
return c.getCount();
}
//Cette méthode permet de convertir un cursor en une prise
private Prise2 cursorToPrise(Cursor c){
//si aucun élément n'a été retourné dans la requête, on renvoie null
if (c.getCount() == 0)
return null;
//Sinon on se place sur le premier élément
c.moveToFirst();
//On créé une prise
Prise2 prise = new Prise2(null,null,null,null);
//on lui affecte toutes les infos grâce aux infos contenues dans le Cursor
prise.setId(c.getInt(NUM_COL_ID_P));
prise.setIdMedoc(c.getInt(NUM_COL_MEDOC));
prise.setHeure(c.getString(NUM_COL_HEURE));
prise.setEffectuee(c.getString(NUM_COL_BOOL));
//On ferme le cursor
c.close();
//On retourne la prise
return prise;
}
//------- Gestion BDD medocs -----------
public long insertMedoc(Medicament medicament){
//Création d'un ContentValues (fonctionne comme une HashMap)
ContentValues values = new ContentValues();
//on lui ajoute une valeur associée à une clé (qui est le nom de la colonne dans laquelle on veut mettre la valeur)
values.put(COL_ID_M, medicament.getIdM());
values.put(COL_NOM1, medicament.getNom1());
values.put(COL_NOM2, medicament.getNom2());
values.put(COL_POSO, medicament.getPosologies());
values.put(COL_INFOS, medicament.getIndications());
values.put(COL_LOGO, medicament.getLogo());
//on insère l'objet dans la BDD via le ContentValues
return bdd.insert(TABLE_MEDOCS, null, values);
}
public int updateMedoc(int id, Medicament medicament){
//La mise à jour d'une prise dans la BDD fonctionne plus ou moins comme une insertion
//il faut simplement préciser quelle prise on doit mettre à jour grâce à l'ID
ContentValues values = new ContentValues();
values.put(COL_ID_M, medicament.getIdM());
values.put(COL_NOM1, medicament.getNom1());
values.put(COL_NOM2, medicament.getNom2());
values.put(COL_POSO, medicament.getPosologies());
values.put(COL_INFOS, medicament.getIndications());
values.put(COL_LOGO, medicament.getLogo());
return bdd.update(TABLE_MEDOCS, values, COL_ID_M + " = " +id, null);
}
public Medicament getMedocWithId(Integer id){
//Récupère dans un Cursor les valeurs correspondant à une prise contenue dans la BDD (ici on sélectionne la prise grâce à son titre)
Cursor c = bdd.query(TABLE_MEDOCS, new String[] {COL_ID_M, COL_NOM1, COL_NOM2, COL_POSO, COL_INFOS, COL_LOGO}, COL_ID_M + " LIKE \"" + id +"\"", null, null, null, null);
return cursorToMedoc(c);
}
public Medicament getMedocWithNom1(String nom){
//Récupère dans un Cursor les valeurs correspondant à une prise contenue dans la BDD (ici on sélectionne la prise grâce à son titre)
Cursor c = bdd.query(TABLE_MEDOCS, new String[] {COL_ID_M, COL_NOM1, COL_NOM2, COL_POSO, COL_INFOS, COL_LOGO}, COL_NOM1 + " LIKE \"" + nom +"\"", null, null, null, null);
return cursorToMedoc(c);
}
public int getIndiceMaxMedoc(){
Cursor c = bdd.rawQuery("select "+COL_ID_M+" from "+TABLE_MEDOCS,null);
return c.getCount();
}
private Medicament cursorToMedoc(Cursor c){
//si aucun élément n'a été retourné dans la requête, on renvoie null
if (c.getCount() == 0)
return null;
//Sinon on se place sur le premier élément
c.moveToFirst();
//On créé une prise
Medicament medicament = new Medicament(null,null,null,null,null,null);
//on lui affecte toutes les infos grâce aux infos contenues dans le Cursor
medicament.setIdM(c.getInt(NUM_COL_ID_M));
medicament.setNom1(c.getString(NUM_COL_NOM1));
medicament.setNom2(c.getString(NUM_COL_NOM2));
medicament.setPosologies(c.getString(NUM_COL_POSO));
medicament.setIndications(c.getString(NUM_COL_INFOS));
medicament.setLogo(c.getString(NUM_COL_LOGO));
//On ferme le cursor
c.close();
//On retourne la prise
return medicament;
}
}