package com.appassit.db;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.provider.BaseColumns;
import com.appassit.model.SunModel;
/**
*/
public class SunDataHelper extends BaseDataHelper {
public SunDataHelper(Context context) {
super(context);
}
@Override
protected Uri getContentUri() {
return DataProvider.WEATHER_CONTENT_URI;
}
private ContentValues getContentValues(SunModel model) {
ContentValues values = new ContentValues();
values.put(SunDBInfo.ID, model.id);
values.put(SunDBInfo.JSON, model.toJson());
return values;
}
public SunModel query(String id) {
SunModel model = null;
Cursor cursor = query(null, SunDBInfo.ID + " = ?", new String[] { id }, null);
if (cursor.moveToFirst()) {
model = SunModel.fromCursor(cursor);
}
cursor.close();
return model;
}
public void insert(SunModel model) {
insert(getContentValues(model));
}
public void bulkInsert(List<SunModel> models) {
ArrayList<ContentValues> contentValueses = new ArrayList<ContentValues>();
for (SunModel model : models) {
ContentValues values = getContentValues(model);
contentValueses.add(values);
}
ContentValues[] valueArray = new ContentValues[contentValueses.size()];
bulkInsert(contentValueses.toArray(valueArray));
}
public int deleteAll() {
synchronized (DataProvider.DBLock) {
DBHelper mDbHelper = DataProvider.getDBHelper();
SQLiteDatabase db = mDbHelper.getWritableDatabase();
int row = db.delete(SunDBInfo.TABLE_NAME, null, null);
return row;
}
}
public static final class SunDBInfo implements BaseColumns {
/** 表名 */
public static final String TABLE_NAME = "assitweather";
/** ID */
public static final String ID = "id";
/** JSON */
public static final String JSON = "json";
public static final SQLiteTable TABLE = new SQLiteTable(TABLE_NAME).addColumn(ID, Column.DataType.INTEGER).addColumn(JSON, Column.DataType.TEXT);
}
}