package com.smit.rssreader;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class RSSOpenHelper extends SQLiteOpenHelper {
public static final String DB_NAME = "rss_reader";
public static final String TAB_CATEGORY = "rss_category";
public static final String CID = "cid";
public static final String RSS_CATEGORY = "category";
public static final String RSS_DESCRIPTION = "description";
public static final String TAB_RSSINFO = "rss_info";
public static final String RID = "rid";
public static final String RSS_URL = "rssurl";
public static final String CHANNEL_TITLE = "channeltitle";
public static final String ITEM_TITLE = "itemtitle";
public static final String ITEM_DES = "itemdescription";
public static final String ITEM_PUBDATE = "itempubdate";
public static final String ITEM_LINK = "itemlink";
public static final String ISREAD = "isread";
public static final String ISONSERVER = "onserver"; // "1"��ʾ�ڱ��ط�������
public RSSOpenHelper(Context context) {
super(context, DB_NAME, null, 1);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("create table if not exists " + TAB_CATEGORY + " (" + CID
+ " integer primary key autoincrement," + RSS_CATEGORY
+ " varchar," + RSS_DESCRIPTION + " varchar)");
db
.execSQL("create table if not exists " + TAB_RSSINFO + " ("
+ RID + " integer primary key autoincrement,"
+ RSS_CATEGORY + " varchar," + RSS_URL + " varchar,"
+ CHANNEL_TITLE + " varchar," + ITEM_TITLE
+ " varchar," + ITEM_DES + " varchar," + ITEM_PUBDATE
+ " varchar," + ITEM_LINK + " varchar," + ISREAD
+ " integer," + ISONSERVER + " integer)");
db.execSQL("insert into " + TAB_CATEGORY
+ " (category, description) values ('����', '')");
db.execSQL("insert into " + TAB_CATEGORY
+ " (category, description) values ('����', '')");
db
.execSQL("insert into rss_info(category,rssurl,channeltitle,itemtitle,itemdescription,itempubdate,itemlink,isread,onserver) values('����',"
+ "'http://rss.sina.com.cn/news/allnews/sports.xml',"
+ "'��������-��������',"
+ "'ׯ����ν���� ƹ����ӳ��ò�˥�ؾ�',"
+ "'',"
+ "'2011-08-08',"
+ "'http://go.rss.sina.com.cn/redirect.php?url=http://blog.sina.com.cn/s/blog_4cf7b4ec0102dry8.html',"
+ "'0', '0')");
db
.execSQL("insert into rss_info(category,rssurl,channeltitle,itemtitle,itemdescription,itempubdate,itemlink,isread,onserver) values('����',"
+ "'http://rss.sina.com.cn/news/allnews/sports.xml',"
+ "'��������-��������',"
+ "'�Ͻ�Ī���ѻ���ȷ����� ���ز��˷��õ�˧����ð',"
+ "'����Ԭ��8��7�չ��ݱ��� ������ۤ�������˵�ʱ��˭����������õ����ߴ�����´�����˻��뵽����Ī�ơ����dz������ϵ��ǣ���˹������վ��ͷ�����ж��ݳ���֮��Ī�Ƹ���ʱ���������油ϯ�Ͽ��Ŷ����DZ��֡����ڹ���վ�ı����У�Ī����Ȼ�ں��������ı����г���....',"
+ "'2011-08-08',"
+ "'http://go.rss.sina.com.cn/redirect.php?url=http://sports.sina.com.cn/cba/2011-08-08/15255694418.shtml',"
+ "'0', '0')");
db
.execSQL("insert into rss_info(category,rssurl,channeltitle,itemtitle,itemdescription,itempubdate,itemlink,isread,onserver) values('����',"
+ "'http://feed.williamlong.info',"
+ "'�¹ⲩ��',"
+ "'�ƶ������������֮��',"
+ "'�����ָ���Ѱ����Ϣ���������ķ�ʽ�����������ǻ�����������ڣ���ַ�����ṩ���������治ͬ��ֵ����ڡ�QQ��һ���й��������Ĺ�̥������ӵ��������������ʵ���罻���磬������Ϊ��û�й㷺�����ֵ�������ڻ�������ڣ��������Ϊ�û����ʻ���������Ҫ����Ҳ��Ϊ��ڣ�������ϵͳ��������������������ڡ�',"
+ "'2011-08-08',"
+ "'http://www.williamlong.info/archives/2766.html',"
+ "'0', '0')");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
public Cursor query() {
SQLiteDatabase db = this.getReadableDatabase();
return db.query(TAB_CATEGORY, null, null, null, null, null, null);
}
public Cursor queryDes(String category) {
SQLiteDatabase db = this.getReadableDatabase();
return db.query(TAB_CATEGORY, new String[] { RSS_DESCRIPTION },
RSS_CATEGORY + "='" + category + "'", null, null, null, null);
}
public Cursor queryCategory() {
SQLiteDatabase db = this.getReadableDatabase();
return db.query(TAB_CATEGORY, new String[] { RSS_CATEGORY }, null,
null, null, null, null);
}
public Cursor queryFeed() {
SQLiteDatabase db = this.getReadableDatabase();
return db.query(TAB_RSSINFO, null, RSS_URL + "!='" + "'", null, null,
null, null);
}
public Cursor queryWithUrl(String url) {
SQLiteDatabase db = this.getReadableDatabase();
return db.query(TAB_RSSINFO, new String[] { RSS_CATEGORY, RSS_URL },
RSS_URL + "='" + url + "'", null, RSS_URL, null, null);
}
public Cursor queryWithCateChannel(String cate, String channel) {
SQLiteDatabase db = this.getReadableDatabase();
return db.query(TAB_RSSINFO, null, RSS_CATEGORY + "='" + cate + "'"
+ " AND " + CHANNEL_TITLE + "='" + channel + "'", null, null,
null, null);
}
public Cursor queryWithCategory(String category) {
SQLiteDatabase db = this.getReadableDatabase();
return db.query(TAB_RSSINFO, new String[] { RSS_CATEGORY,
CHANNEL_TITLE, RSS_URL }, RSS_CATEGORY + "='" + category + "'",
null, RSS_URL, null, null);
}
public Cursor queryNotOnServer(int onserver) {
SQLiteDatabase db = this.getReadableDatabase();
return db.query(TAB_RSSINFO, new String[] { RSS_CATEGORY,
CHANNEL_TITLE, RSS_URL }, ISONSERVER + "='" + onserver + "'",
null, RSS_URL, null, null);
}
public Cursor queryWithUrlAndCategory(String category, String url) {
SQLiteDatabase db = this.getReadableDatabase();
return db.query(TAB_RSSINFO, null, RSS_CATEGORY + "='" + category + "'"
+ " AND " + RSS_URL + "='" + url + "'", null, null, null, null);
}
public Cursor queryItem(String category, String link) {
SQLiteDatabase db = this.getReadableDatabase();
return db.query(TAB_RSSINFO, null, RSS_CATEGORY + "='" + category + "'"
+ " AND " + ITEM_LINK + "='" + link + "'", null, null, null,
null);
}
public Cursor queryWithCU(String cate, String url) {
SQLiteDatabase db = this.getReadableDatabase();
return db.query(TAB_RSSINFO, null, RSS_CATEGORY + "='" + cate + "'"
+ " AND " + RSS_URL + "='" + url + "'", null, null, null, null);
}
public Cursor queryWithCUF(String cate, String url, int flag) {
SQLiteDatabase db = this.getReadableDatabase();
return db.query(TAB_RSSINFO, null, RSS_CATEGORY + "='" + cate + "'"
+ " AND " + RSS_URL + "='" + url + "'" + " AND " + ISREAD
+ "='" + flag + "'", null, null, null, null);
}
public Cursor queryWithCL(String cate, String link, int flag) {
SQLiteDatabase db = this.getReadableDatabase();
return db.query(TAB_RSSINFO, null, RSS_CATEGORY + "='" + cate + "'"
+ " AND " + ITEM_LINK + "='" + link + "'" + " AND " + ISREAD
+ "='" + flag + "'", null, null, null, null);
}
public Cursor queryWithCFL(String cate, String feedUrl, String link) {
SQLiteDatabase db = this.getReadableDatabase();
return db.query(TAB_RSSINFO, null, RSS_CATEGORY + "='" + cate + "'"
+ " AND " + RSS_URL + "='" + feedUrl + "'" + " AND "
+ ITEM_LINK + "='" + link + "'", null, null, null, null);
}
public void insertCategory(String category, String description) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(RSS_CATEGORY, category);
values.put(RSS_DESCRIPTION, description);
db.insert(TAB_CATEGORY, null, values);
db.close();
}
public void insertRssInfo(String category, String url, String channleTitle,
String itemTile, String itemDes, String itemPub, String itemLink,
int flag1, int flag2) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(RSS_CATEGORY, category);
values.put(RSS_URL, url);
values.put(CHANNEL_TITLE, channleTitle);
values.put(ITEM_TITLE, itemTile);
values.put(ITEM_DES, itemDes);
values.put(ITEM_PUBDATE, itemPub);
values.put(ITEM_LINK, itemLink);
values.put(ISREAD, flag1);
values.put(ISONSERVER, flag2);
db.insert(TAB_RSSINFO, null, values);
db.close();
}
public void updateRssCate(String newCategory, String newDes,
String oldCategory) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(RSS_CATEGORY, newCategory);
values.put(RSS_DESCRIPTION, newDes);
db.update(TAB_CATEGORY, values,
RSS_CATEGORY + "='" + oldCategory + "'", null);
}
public void updateRssDes(String newDes, String oldCategory) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(RSS_DESCRIPTION, newDes);
db.update(TAB_CATEGORY, values,
RSS_CATEGORY + "='" + oldCategory + "'", null);
}
public void updateRssInfo(String newCategory, String oldCategory) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(RSS_CATEGORY, newCategory);
db.update(TAB_RSSINFO, values, RSS_CATEGORY + "='" + oldCategory + "'",
null);
}
public void updateISREAED(String category, String url, String link) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(ISREAD, RssReaderConstant.ISREAD);
if (link == null) {
db.update(TAB_RSSINFO, values, RSS_CATEGORY + "='" + category + "'"
+ " AND " + RSS_URL + "='" + url + "'", null);
} else {
db.update(TAB_RSSINFO, values, RSS_CATEGORY + "='" + category + "'"
+ " AND " + RSS_URL + "='" + url + "'" + " AND "
+ ITEM_LINK + "='" + link + "'", null);
}
}
public void deleteCategory(String category) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TAB_CATEGORY, RSS_CATEGORY + "='" + category + "'", null);
db.delete(TAB_RSSINFO, RSS_CATEGORY + "='" + category + "'", null);
db.close();
}
public void deleteRssUrl(String category, String url) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TAB_RSSINFO, RSS_CATEGORY + "='" + category + "'" + " AND "
+ RSS_URL + "='" + url + "'", null);
db.close();
}
public void deleteChannel(String feedUrl) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TAB_RSSINFO, RSS_URL + "='" + feedUrl + "'", null);
db.close();
}
}