CacheManager


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());
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值