package com.talent.allshare.downloader; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.util.Log; public class DownloadDB { private final static String TAG = "DownloadDB"; private DownloadDBHelper dbHelper; public DownloadDB(Context context) { dbHelper = new DownloadDBHelper(context); } /** * 查看数据库中是否有数据 */ public boolean hasInfo(String urlstr) { SQLiteDatabase database = dbHelper.getReadableDatabase(); /* String whereClause = "url=?"; Cursor c = database.query("download_info", null, whereClause ,new String[]{urlstr},null, null, null); boolean ret = c.moveToFirst(); c.close(); return !ret; */ Log.e(TAG,"urlstr: "+urlstr); String sql = "select count(*) from download_info where url=?"; Cursor cursor = database.rawQuery(sql, new String[] { urlstr }); cursor.moveToFirst(); int count = cursor.getInt(0); cursor.close(); Log.e(TAG,"count: "+count); return count==0; } /** * 保存 下载的具体信息 */ public void saveDwonloadInfo(DownloadInfo info) { Log.e(TAG,"saveDwonloadInfo"); SQLiteDatabase database = dbHelper.getWritableDatabase(); Log.e(TAG,"urlstr: "+info.getUrl()); String sql = "insert into download_info(url,file_size,compelete_size,file_path,file_md5) values (?,?,?,?,?)"; Object[] bindArgs = {info.getUrl(), info.getFileSize(),info.getCompeleteSize(),info.getFilePath(),info.getFileMd5(),info.getSpeed()}; database.execSQL(sql, bindArgs); /* Log.e(TAG,"urlstr: "+info.getUrl()); ContentValues cv = new ContentValues(); cv.put("url", info.getUrl()); cv.put("file_size", info.getFileSize()); cv.put("compelete_size", info.getCompeleteSize()); cv.put("file_path", info.getFilePath()); cv.put("file_md5", info.getFileMd5()); database.insert("download_info", null, cv); */ } /** * 得到下载具体信息 */ public DownloadInfo getDownloadInfo(String urlstr) { SQLiteDatabase database = dbHelper.getReadableDatabase(); String sql = "select _id,url,file_size,compelete_size,file_path,file_md5 from download_info where url=?"; Cursor cursor = database.rawQuery(sql, new String[] { urlstr }); DownloadInfo info = null; if(cursor.moveToFirst()){ info = new DownloadInfo(cursor.getInt(0),cursor.getString(1), cursor.getInt(2), cursor.getInt(3), cursor.getString(4),cursor.getString(5), cursor.getInt(6)); } cursor.close(); return info; } /** * 更新数据库中的下载信息 */ public void updataInfo(String urlstr, int compeleteSize, String fileMd5) { Log.e(TAG,"updateInfo... compeleteSize: "+compeleteSize); /* SQLiteDatabase database = dbHelper.getReadableDatabase(); String sql = "update download_info set compelete_size=?, file_md5=? where url=? "; Object[] bindArgs = { compeleteSize, fileMd5, urlstr }; database.execSQL(sql, bindArgs); */ SQLiteDatabase database = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("compelete_size", compeleteSize); values.put("file_md5", fileMd5); String whereCaluse = "url=?"; String[] whereArgs = {urlstr}; database.update("download_info", values, whereCaluse, whereArgs); database.close(); } /** * 关闭数据库 */ public void closeDb() { dbHelper.close(); } /** * 下载完成后删除数据库中的数据 */ public void delete(String url) { SQLiteDatabase database = dbHelper.getReadableDatabase(); database.delete("download_info", "url=?", new String[] { url }); database.close(); } }