package com.companyname.transport.util.db;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import com.companyname.util.log.companynameLog;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class CacheManager {
public static String getCacheByUrl(SQLiteDatabase sqLiteDatabase, String cacheUrl) {
Cursor cursor = null;
try {
String sql = "SELECT cacheData FROM cache WHERE cacheUrl='" + cacheUrl + "'"
+ " ORDER BY " + "cacheTime" + " DESC";
companynameLog.i("getCacheByUrl:" + sql);
cursor = sqLiteDatabase.rawQuery(sql, null);
int cacheDateIndex = cursor.getColumnIndex("cacheData");
String cacheData = "";
for (cursor.moveToFirst(); !(cursor.isAfterLast()); cursor.moveToNext()) {
cacheData = cursor.getString(cacheDateIndex);
}
cursor.close();
companynameLog.i(cacheUrl + "=" + cacheData);
return cacheData;
} catch (Exception e) {
companynameLog.e(e.getMessage());
cursor.close();
}
return null;
}
public static void updateCacheByUrl(SQLiteDatabase sqLiteDatabase, String cacheUrl,
String cacheData) {
try {
String pattern = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String cacheTime = sdf.format(new Date());
String sql = "UPDATE cache SET cacheData='" + cacheData + "'," + "cacheTime" + "='"
+ cacheTime + "' WHERE " + "cacheUrl" + "='" + cacheUrl + "'";
companynameLog.i("updateCacheByUrl:" + sql);
sqLiteDatabase.execSQL(sql);
} catch (SQLException e) {
companynameLog.e("updateCacheByUrl:" + e.getMessage());
}
}
public static void insertCache(SQLiteDatabase sqLiteDatabase, String cacheUrl, String cacheData) {
try {
String pattern = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String cacheTime = sdf.format(new Date());
ContentValues cv = new ContentValues();
cv.put("cacheData", cacheData);
cv.put("cacheUrl", cacheUrl);
cv.put("cacheTime", cacheTime);
sqLiteDatabase.insert("cache", null, cv);
} catch (Exception e) {
companynameLog.e(e.getMessage());
}
}
public static void cleanCacheByDate(SQLiteDatabase sqLiteDatabase, int days) {
try {
GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
gc.setTime(new Date());
gc.add(5, -days);
SimpleDateFormat vSimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String strTime = vSimpleDateFormat.format(gc.getTime());
String sql = "DELETE FROM cache WHERE cacheTime < '" + strTime + "'";
companynameLog.i("cleanCacheByDate:" + sql);
sqLiteDatabase.execSQL(sql);
} catch (SQLException e) {
companynameLog.e("cleanCacheByDate:" + e.getMessage());
}
}
}