package com.qianfeng.gl4study.snssdk.databases;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.qianfeng.gl4study.snssdk.model.Snssdk;
import java.util.LinkedList;
/**
* Created with IntelliJ IDEA.
* I'm glad to share my knowledge with you all.
* User:Gaolei
* Date:2015/2/26
* Email:pdsfgl@live.com
*/
public class SnssdkDatabasesManager {
private static SnssdkDatabasesManager ourInstance;
private SnssdktDatabasesHelper dbHelper;
private SQLiteDatabase database;
private boolean ret = false;
public static SnssdkDatabasesManager createInstance(Context context){
if(ourInstance==null){
ourInstance = new SnssdkDatabasesManager(context);
}
return ourInstance;
}
public static SnssdkDatabasesManager getInstance() {
return ourInstance;
}
Context context;
private SnssdkDatabasesManager(Context context) {
this.context = context;
}
/**
* 查询段子信息
* @param group_id 段子Id
* @return 结果游标
*/
public Cursor querySnssdk(long group_id){
SQLiteDatabase db = openDatabases();
Cursor query = db.query(
SnssdktDatabasesHelper.TABLE_SNSSDK_WORD,
null,
"group_id = ?",
new String[]{group_id+""},
null, null, null
);
return query;
}
/**
* 获取段子列表
* @param category 段子类别
* @return 返回结果集合
*/
public LinkedList<Snssdk> getSnssdkCollect(int category,int level){
LinkedList<Snssdk> ret = null;
SQLiteDatabase db = openDatabases();
Cursor query;
if(level ==6){
query = db.query(
SnssdktDatabasesHelper.TABLE_SNSSDK_WORD,
null,
"category_type = ?",
new String[]{category+""},
null, null, "group_id ASC"
);
}else {
query = db.query(
SnssdktDatabasesHelper.TABLE_SNSSDK_WORD,
null,
"category_type = ?AND level = ?",
new String[]{category + "", level + ""},
null, null, "_id ASC"
);
}
if(query!=null){
ret = new LinkedList<Snssdk>();
while (query.moveToNext()){
Snssdk snssdk = new Snssdk();
snssdk.parseCursor(query);
ret.add(snssdk);
}
query.close();
}
return ret;
}
/**
* 数据库存储段子信息
* @param values 需要存储的信息
* @return 返回存储结果
*/
public boolean saveSnssdk(ContentValues values,long groupId){
/*
检查数据库是否打开
未打开进行打开操作
*/
SQLiteDatabase db = openDatabases();
if(db!=null){
if(values!=null) {
try {
db.beginTransaction();
//检查段子是否存在
if(querySnssdk(groupId)==null||querySnssdk(groupId).getCount()<=0){
long rid = db.insert(SnssdktDatabasesHelper.TABLE_SNSSDK_WORD, null, values);
ret = rid!=-1;
if(ret){
db.setTransactionSuccessful();
}
}
}catch (Exception ex){
ex.printStackTrace();
}finally {
db.endTransaction();
}
}
}
return ret;
}
/**
* 打开数据库的操作
* @return 打开的数据库
*/
private SQLiteDatabase openDatabases(){
if(database == null){
if(dbHelper==null) {
dbHelper = new SnssdktDatabasesHelper(context);
}
database = dbHelper.getWritableDatabase();
}
return database;
}
}