J'utilise la base de données Ormlite dans l'une de mes applications. Maintenant, je veux supprimer tous les enregistrements de la base de données qui sont stockés avant une date particulière. Prenons un exemple: -Supprimer tous les enregistrements en utilisant ORMlite avant une date particulière
Aujourd'hui est le 17 avril. Lorsque l'utilisateur a sélectionné Une semaine dans l'une des options via l'application, tous les enregistrements qui sont avant une semaine, c'est-à-dire avant et le 10 avril doivent être supprimés de la base de données.
Ce qui suit est ma classe de haricot de l'objet: -
public class AlertsDataClass extends BaseDataClass implements Parcelable {
public static final Creator<AlertsDataClass> CREATOR = new Creator<AlertsDataClass>() {
@Override
public AlertsDataClass createFromParcel(Parcel in) {
return new AlertsDataClass(in);
}
@Override
public AlertsDataClass[] newArray(int size) {
return new AlertsDataClass[size];
}
};
@DatabaseField
private int alertId;
@DatabaseField
private String alertTitle;
@DatabaseField
private int alertLevel;
@DatabaseField
private String alertLog;
@DatabaseField
private int alertAssignee;
@DatabaseField
private String alertLocationId;
@DatabaseField
private int alertStatus;
@DatabaseField
private String alertStartTime;
@DatabaseField
private String alertUpdatedTime;
@DatabaseField
private String alertDeviceId;
@DatabaseField
private int alertActionNeeded;
@DatabaseField
private String alertAssigneeName;
public AlertsDataClass() {
}
protected AlertsDataClass(Parcel in) {
alertId = in.readInt();
alertTitle = in.readString();
alertLevel = in.readInt();
alertLog = in.readString();
alertAssignee = in.readInt();
alertAssigneeName = in.readString();
alertLocationId = in.readString();
alertStatus = in.readInt();
alertStartTime = in.readString();
alertUpdatedTime = in.readString();
alertDeviceId = in.readString();
alertActionNeeded = in.readInt();
}
public int getAlertId() {
return alertId;
}
public void setAlertId(int alertId) {
this.alertId = alertId;
}
public String getAlertTitle() {
return alertTitle;
}
public void setAlertTitle(String alertTitle) {
this.alertTitle = alertTitle;
}
public int getAlertLevel() {
return alertLevel;
}
public void setAlertLevel(int alertLevel) {
this.alertLevel = alertLevel;
}
public String getAlertLog() {
return alertLog;
}
public void setAlertLog(String alertLog) {
this.alertLog = alertLog;
}
public int getAlertAssignee() {
return alertAssignee;
}
public void setAlertAssignee(int alertAssignee) {
this.alertAssignee = alertAssignee;
}
public String getAlertLocationId() {
return alertLocationId;
}
public void setAlertLocationId(String alertLocationId) {
this.alertLocationId = alertLocationId;
}
public int getAlertStatus() {
return alertStatus;
}
public void setAlertStatus(int alertStatus) {
this.alertStatus = alertStatus;
}
public String getAlertStartTime() {
return alertStartTime;
}
public void setAlertStartTime(String alertStartTime) {
this.alertStartTime = alertStartTime;
}
public String getAlertUpdatedTime() {
return alertUpdatedTime;
}
public void setAlertUpdatedTime(String alertUpdatedTime) {
this.alertUpdatedTime = alertUpdatedTime;
}
public String getAlertDeviceId() {
return alertDeviceId;
}
public void setAlertDeviceId(String alertDeviceId) {
this.alertDeviceId = alertDeviceId;
}
public int getAlertActionNeeded() {
return alertActionNeeded;
}
public void setAlertActionNeeded(int alertActionNeeded) {
this.alertActionNeeded = alertActionNeeded;
}
public String getAlertAssigneeName() {
return alertAssigneeName;
}
public void setAlertAssigneeName(String alertAssigneeName) {
this.alertAssigneeName = alertAssigneeName;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(alertId);
dest.writeString(alertTitle);
dest.writeInt(alertLevel);
dest.writeString(alertLog);
dest.writeInt(alertAssignee);
dest.writeString(alertAssigneeName);
dest.writeString(alertLocationId);
dest.writeInt(alertStatus);
dest.writeString(alertStartTime);
dest.writeString(alertUpdatedTime);
dest.writeString(alertDeviceId);
dest.writeInt(alertActionNeeded);
}
}
Dans la classe de données ci-dessus, "alertStartTime" est le champ qui contient la date dans le format « 17/04/17 16h29 ". Maintenant, lorsque l'utilisateur sélectionne une semaine, tous les enregistrements avant et le "04/10/17 16:29" doivent être supprimés de la base de données. Je supprime l'enregistrement sur la base de deux champs. L'un est "alertStatus" dont la valeur devrait être 5 et l'autre est "alertStartTime" dans lequel une semaine avant la date shuold sera donnée pour supprimer tous les enregistrements qui viennent avant et le "04/10/17 16:29". J'espère que vous avez compris ma question clairement.
Ma base de données supprimer la méthode des dossiers comme suit: -
public void deleteCompleteAlerts(int alertStatus, String alertStartTime) {
DeleteBuilder<AlertsDataClass, Integer> deleteBuilder = getAlertsDetailDao().deleteBuilder();
try {
Where<AlertsDataClass, Integer> where = deleteBuilder.where();
int condCount = 0;
if(alertStatus == 5){
where.eq("alertStatus", alertStatus);
condCount++;
}
if(alertStartTime.equalsIgnoreCase("04/14/17")){
where.like("alertStartTime", "%" + alertStartTime + "%");
condCount++;
}
if (condCount > 0) {
where.and(condCount);
}
deleteBuilder.delete();
} catch (SQLException e) {
e.printStackTrace();
}
}
Dans la méthode ci-dessus, nous devons modifier cette instruction if comme suit: -
if(alertStartTime.equalsIgnoreCase("04/14/17")){
where.like("alertStartTime", "%" + alertStartTime + "%");
condCount++;
}
S'il vous plaît me aider à trier ce problème. Merci à l'avance les gars !!