package org.qinshuihepan.bbs.dao;
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 android.support.v4.content.CursorLoader;
import org.qinshuihepan.bbs.model.BasePost;
import org.qinshuihepan.bbs.util.database.Column;
import org.qinshuihepan.bbs.util.database.SQLiteTable;
import java.util.ArrayList;
import java.util.List;
/**
* Created by liurongchan on 14-5-2.
*/
public class ItemsDataHelper extends BaseDataHelper {
public ItemsDataHelper(Context context) {
super(context);
}
@Override
protected Uri getContentUri() {
return DataProvider.ITEMS_CONTENT_URI;
}
private ContentValues getContentValues(BasePost post) {
ContentValues values = new ContentValues();
values.put(ItemsDBInfo.FID, post.fid);
values.put(ItemsDBInfo.PID, post.pid);
values.put(ItemsDBInfo.TID, post.tid);
values.put(ItemsDBInfo.TITLE, post.title);
values.put(ItemsDBInfo.CONTENT, post.content);
values.put(ItemsDBInfo.TIME, post.time);
values.put(ItemsDBInfo.HAVEIMG, post.haveimg);
values.put(ItemsDBInfo.COMMENT_COUNT, post.comment_count);
values.put(ItemsDBInfo.AUTHOR, post.author);
return values;
}
public BasePost query(long tid) {
BasePost post = null;
Cursor cursor = query(null, ItemsDBInfo.TID + "=?",
new String[]{
String.valueOf(tid)
}, null
);
if (cursor.moveToFirst()) {
post = post.fromCursor(cursor, BasePost.ITEM);
}
cursor.close();
return post;
}
public void bulkInsert(List<BasePost> posts) {
ArrayList<ContentValues> contentValues = new ArrayList<ContentValues>();
for (BasePost post : posts) {
ContentValues values = getContentValues(post);
contentValues.add(values);
}
ContentValues[] valueArray = new ContentValues[contentValues.size()];
bulkInsert(contentValues.toArray(valueArray));
}
public int deleteAll() {
synchronized (DataProvider.DBLock) {
DBHelper mDBHelper = DataProvider.getDBHelper();
SQLiteDatabase db = mDBHelper.getWritableDatabase();
int row = db.delete(ItemsDBInfo.TABLE_NAME, null, null);
return row;
}
}
public CursorLoader getCursorLoader() {
return new CursorLoader(getContext(), getContentUri(), null, null, null, ItemsDBInfo._ID + " ASC");
}
public static final class ItemsDBInfo implements BaseColumns {
public static final String TABLE_NAME = "items";
public static final String FID = "fid";
public static final String TID = "tid";
public static final String PID = "pid";
public static final String TITLE = "title";
public static final String CONTENT = "content";
public static final String TIME = "time";
public static final String HAVEIMG = "haveimg";
public static final String COMMENT_COUNT = "comment_count";
public static final String AUTHOR = "author";
public static final SQLiteTable TABLE = new SQLiteTable(TABLE_NAME)
.addColumn(FID, Column.DataType.INTEGER)
.addColumn(TID, Column.DataType.INTEGER)
.addColumn(PID, Column.DataType.INTEGER)
.addColumn(TITLE, Column.DataType.TEXT)
.addColumn(CONTENT, Column.DataType.TEXT)
.addColumn(TIME, Column.DataType.TEXT)
.addColumn(HAVEIMG, Column.DataType.INTEGER)
.addColumn(COMMENT_COUNT, Column.DataType.INTEGER)
.addColumn(AUTHOR, Column.DataType.TEXT);
private ItemsDBInfo() {
}
}
}