您的位置:首页 > 其它

CacheManager

2016-03-25 21:13 274 查看
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());

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: