package com.roboo.like.google.dao.impl;
import java.util.LinkedList;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.text.TextUtils;
import com.roboo.like.google.databases.DBHelper;
import com.roboo.like.google.models.ImgUrl;
/***
* 图片url的操作
* @author bo.li
*
* 2014-7-14 下午1:04:47
*/
public class ImgUrlDaoImpl
{
private static final boolean DEBUG_FLAG = true;
private static final String NEWS_IMG = "news_img";
private static final String NEWS_IMG_MD5 = "news_img_md5";
private static final String NEWS_IMG_NOTE = "news_img_note";
private static final String TABLE_NEWS_IMG_LIST = "news_img_list";
private DBHelper mHelper;
public ImgUrlDaoImpl(DBHelper mHelper)
{
super();
this.mHelper = mHelper;
}
/***
* 向数据库表中插入图片url前缀
* @param imgs 新闻内容中出现图片url的前缀
* @return ture 添加成功 或者 false 添加失败
*/
public boolean insertImgUrls(LinkedList<ImgUrl> imgs)
{
boolean flag = false;
int insertCount = 0;
SQLiteDatabase db = mHelper.getWritableDatabase();
for (ImgUrl imgUrl : imgs)
{
if (!isImgUrlExist(imgUrl.md5))
{
ContentValues values = new ContentValues();
values.put(NEWS_IMG, imgUrl.imgUrl);
values.put(NEWS_IMG_NOTE, imgUrl.note);
values.put(NEWS_IMG_MD5, imgUrl.md5);
db.insert(TABLE_NEWS_IMG_LIST, null, values);
insertCount++;
}
else
{
if (DEBUG_FLAG)
{
System.out.println("要添加的Img URL 已经存在于数据库中了……");
}
}
}
flag = insertCount == imgs.size();
return flag;
}
/**
* 获取数据库中所有是图片url的集合封装到一个LinkedList对象中
*
* @return null 或者 一个LinkedList对象(size() >0)
*/
public LinkedList<String> getImgUrls()
{
LinkedList<String> data = null;
SQLiteDatabase db = mHelper.getWritableDatabase();
Cursor cursor = db.query(true, TABLE_NEWS_IMG_LIST, new String[] { NEWS_IMG_MD5 }, null, null, null, null, null, null);
if (null != cursor)
{
data = new LinkedList<String>();
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext())
{
String str = cursor.getString(0);
if (!TextUtils.isEmpty(str))
{
data.add(str);
}
}
cursor.close();
if (data.size() == 0)
{
data = null;
}
}
db.close();
return data;
}
/***
* 判断要添加的ImgUrl是否已经存在于数据库中了, 防止重复添加
*
* @param md5
* : ImgUrl对象的md5,根据对象url和note生成的
* @return true 已经添加到数据库了, false 没有添加到数据库中
*/
private boolean isImgUrlExist(String md5)
{
boolean flag = false;
SQLiteDatabase db = mHelper.getWritableDatabase();
Cursor cursor = db.query(true, TABLE_NEWS_IMG_LIST, null, NEWS_IMG_MD5 + " = ?", new String[] { md5 }, null, null, null, null);
if (null != cursor)
{
flag = 1 == cursor.getCount();
}
return flag;
}
}