package com.letv.commonjar.download;
import com.letv.commonjar.download.JDownloadDBHelper.JDownloadTaskColumn;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
public class JDownloadDBUtils {
private JDownloadDBHelper mDbHelper;
public JDownloadDBUtils(Context ctx) {
mDbHelper = JDownloadDBHelper.getInstance(ctx);
}
public long insert(ContentValues values) {
long ret = -1;
SQLiteDatabase db = mDbHelper.getWritableDatabase();
db.beginTransaction();
try {
ret = db.insert(JDownloadDBHelper.DOWNLOAD_TABLE, null, values);
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
return ret;
}
public long delete(long id) {
long ret = -1;
SQLiteDatabase db = mDbHelper.getWritableDatabase();
ret = db.delete(JDownloadDBHelper.DOWNLOAD_TABLE, "_id=?", new String[] { id + "" });
return ret;
}
public long delete(long... ids) {
long ret = -1;
SQLiteDatabase db = mDbHelper.getWritableDatabase();
ret = db.delete(JDownloadDBHelper.DOWNLOAD_TABLE, getWhereClauseForIds(ids), getWhereArgsForIds(ids));
db.close();
return ret;
}
public synchronized long update(long id, ContentValues values) {
long ret = -1;
SQLiteDatabase db = mDbHelper.getWritableDatabase();
db.beginTransaction();
try {
ret = db.update(JDownloadDBHelper.DOWNLOAD_TABLE, values, "_id=?", new String[] { id + "" });
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
return ret;
}
public Cursor query(long id) {
SQLiteDatabase db = mDbHelper.getWritableDatabase();
return db.query(JDownloadDBHelper.DOWNLOAD_TABLE, null, "_id=?", new String[] { id + "" }, null, null, null);
}
public Cursor queryAll() {
SQLiteDatabase db = mDbHelper.getWritableDatabase();
return db.query(JDownloadDBHelper.DOWNLOAD_TABLE, null, null, null, null, null, null);
}
/**
* Get a parameterized SQL WHERE clause to select a bunch of IDs.
*/
private static String getWhereClauseForIds(long[] ids) {
StringBuilder whereClause = new StringBuilder();
whereClause.append("(");
for (int i = 0; i < ids.length; i++) {
if (i > 0) {
whereClause.append("OR ");
}
whereClause.append(JDownloadTaskColumn._ID);
whereClause.append(" = ? ");
}
whereClause.append(")");
return whereClause.toString();
}
/**
* Get the selection args for a clause returned by
*/
private static String[] getWhereArgsForIds(long[] ids) {
String[] whereArgs = new String[ids.length];
for (int i = 0; i < ids.length; i++) {
whereArgs[i] = Long.toString(ids[i]);
}
return whereArgs;
}
}