开门见山的说,咱不搞那么多理论的,直接来写实用的。
由于经常用到数据库存储,多以写一篇博文分享下经验,也是自己做个笔记。直接上代码,详情见代码中的注释。
import java.util.ArrayList;
import java.util.Calendar;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.net.UrlQuerySanitizer.ValueSanitizer;
import android.util.Log;
import com.mct.blogrssreader.R;
import com.mct.model.Channel;
import com.mct.model.ChannelListItem;
import com.mct.model.Item;
import com.mct.model.Outline;
import com.mct.model.Reply;
import com.mct.model.User;
/**
* @author 作者 E-mail:
* @version 创建时间:2020-05-22 下午3:18:03 类说明
*/
public class NewsDataBaseAdapter {
// 数据库名称
private static final String DB_NAME = "my_rss_db";
// ========================新闻Outline开始===========================//
public static final String OUTLINE_TABLE = "outline_tb";
public static final String KEY_OUTLINE_ID = "_id";
public static final String KEY_OUTLINE_TITLE = "outline_title";
public static final String KEY_OUTLINE_XMLURL = "xmlurl";
private static final String CREATE_OUTLINE_TABLE_SQL = "create table outline_tb (_id integer primary key autoincrement, "
+ "outline_title text not null, xmlurl text not null)";
// ========================新闻Outline开始===========================//
// ========================新闻item开始===========================//
// 数据库表
public static final String NEWS_TABLE = "new_tb";
// 新闻id(数据库id)
public static final String KEY_NEWS_ROWID = "_id";
// 新闻分类id
public static final String KEY_NES_OUTLINE_ID = "outline_id";
// 标题
public static final String KEY_NEWS_TITLE = "title";
// 链接
public static final String KEY_NEWS_LINK = "link";
// 发布日期
public static final String KEY_NEWS_PUBDATE = "pubdate";
// 分类
public static final String KEY_NEWS_CATEGORY = "category";
// 描述
public static final String KEY_NEWS_DESCRIPTION = "description";
// 作者
public static final String KEY_NEWS_AUTHOR = "author";
private static final String CREATE_NEWS_TABLE_SQL = "create table new_tb (_id integer primary key autoincrement, "
+ "outline_id integer not null,"
+ "title text not null, link text not null,"
+ "pubdate text,category text,"
+ "description text,"
+ "author text)";
// ========================新闻item结束===========================//
// ========================新闻评论开始===========================//
// 数据表名
public static final String REPLY_TABLE = "reply_tb";
// id字段
public static final String KEY_REPLY_ID = "_id";
// 评论新闻id
public static final String KEY_REPLY_NEWS_ID = "news_id";
// 评论人名称
public static final String KEY_REPLY_AUTHOR = "reply_author";
// 评论内容
public static final String KEY_REPLY_CONTENRS = "reply_contents";
// 当前楼层的底楼id
public static final String KEY_REPLY_PARENT = "reply_parent_id";
// 评论日期
public static final String KEY_REPLY_DATE = "reply_date";
private static final String CREATE_REPLY_TABLE_SQL = "create table reply_tb (_id integer primary key autoincrement, "
+ "news_id integer not null, reply_author text not null, reply_contents text not null,"
+ "reply_parent_id integer not null,reply_date text not null)";
// ========================新闻评论结束===========================//
// ========================用户信息开始===========================//
// 用户表名称
public static final String USER_TABLE = "user_tb";
// 用户id
public static final String KEY_USER_ID = "_id";
// 用户名
public static final String KEY_USER_NAME = "name";
// 用户密码
public static final String KEY_USER_PASSWORD = "password";
private static final String CREATE_USER_TABLE_SQL = "create table user_tb (_id integer primary key autoincrement, "
+ "name text not null, password text not null)";
// ========================用户信息结束===========================//
// ========================用户评分开始===========================//
// 用户评分表
public static final String SCORE_TABLE = "score_tb";
// 评分id
public static final String KEY_SCORE_ID = "_id";
// 评分的新闻id
public static final String KEY_SCORE_NEWS_ID = "news_id";
// 1分票数字段
public static final String KEY_SCORE_ONE = "one";
// 2分票数字段
public static final String KEY_SCORE_TWO = "two";
// 3分票数字段
public static final String KEY_SCORE_THREE = "three";
// 4分票数字段
public static final String KEY_SCORE_FOUR = "four";
// 5分票数字段
public static final String KEY_SCORE_FIVE = "five";
private static final String CREATE_SCORE_TABLE_SQL = "create table score_tb (_id integer primary key autoincrement, "
+ "news_id integer not null, one integer, two integer, three integer, "
+ "four integer, five integer)";
// ========================用户评分结束===========================//
private MyDataBaseOpenHelper mOpenHelper;
private SQLiteDatabase mDb;
private static NewsDataBaseAdapter mNewsDataBaseAdapter;
class MyDataBaseOpenHelper extends SQLiteOpenHelper {
public MyDataBaseOpenHelper(Context context) {
super(context, DB_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_OUTLINE_TABLE_SQL);
db.execSQL(CREATE_NEWS_TABLE_SQL);
db.execSQL(CREATE_REPLY_TABLE_SQL);
db.execSQL(CREATE_USER_TABLE_SQL);
db.execSQL(CREATE_SCORE_TABLE_SQL);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS outline_tb");
db.execSQL("DROP TABLE IF EXISTS new_tb");
db.execSQL("DROP TABLE IF EXISTS reply_tb");
db.execSQL("DROP TABLE IF EXISTS user_tb");
db.execSQL("DROP TABLE IF EXISTS score_tb");
onCreate(db);
}
}
public static NewsDataBaseAdapter shareNewsBaseAdapter(Context context) {
if (mNewsDataBaseAdapter == null) {
mNewsDataBaseAdapter = new NewsDataBaseAdapter(context);
}
return mNewsDataBaseAdapter;
}
private NewsDataBaseAdapter(Context context) {
mOpenHelper = new MyDataBaseOpenHelper(context);
openSQLiteDatabase();
}
public void openSQLiteDatabase() {
mDb = mOpenHelper.getWritableDatabase();
}
public void closeSQLiteDatabase() {
mDb.close();
mOpenHelper.close();
mDb = null;
mNewsDataBaseAdapter = null;
}
/**
* 向新闻类型表插入数据
* @param outline_title
* 类型标题
* @param xmlurl
* 类型xml文件的url地址
*/
public void insertOutline(String outline_title, String xmlurl) {
ContentValues values = new ContentValues();
values.put(KEY_OUTLINE_TITLE, outline_title);
values.put(KEY_OUTLINE_XMLURL, xmlurl);
mDb.insert(OUTLINE_TABLE, null, values);
}
/**
* 清除历史记录以便刷新数据
*/
public void clearReadBlog() {
mDb.delete(NEWS_TABLE, null, null);
mDb.delete(REPLY_TABLE, null, null);
}
/**
* 查询分类,获取查询指针
* @return 返回类型查询指针
*/
public Cursor queryOutline() {
String columns[] = { KEY_OUTLINE_ID, KEY_OUTLINE_TITLE,
KEY_OUTLINE_XMLURL };
Cursor cursor = mDb.query(OUTLINE_TABLE, columns, null, null, null,
null, null);
return cursor;
}
/**
* 获取新闻类型
* @return
*/
public ChannelListItem getOutlines() {
ChannelListItem outlines = new ChannelListItem();
outlines.setChannelTitle("博客中心");
Cursor cursor = queryOutline();
// cursor.moveToFirst();
ArrayList outlineList = new ArrayList();
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex(KEY_OUTLINE_ID));
String outlineTitle = cursor.getString(cursor.getColumnIndex(KEY_OUTLINE_TITLE));
String xmlUrl = cursor.getString(cursor.getColumnIndex(KEY_OUTLINE_XMLURL));
Outline outline = new Outline(id, outlineTitle, xmlUrl);
outlineList.add(outline);
}
outlines.setOutlines(outlineList);
cursor.close();
return outlines;
}
/**
* 插入新闻
*
* @param outline_id
* @param title
* @param link
* @param pubdate
* @param category
* @param description
* @param author
*/
public void insertNews(int outline_id, String title, String link,String pubdate, String category, String description, String author) {
ContentValues values = new ContentValues();
values.put(KEY_NES_OUTLINE_ID, outline_id);
values.put(KEY_NEWS_TITLE, title);
values.put(KEY_NEWS_LINK, link);
values.put(KEY_NEWS_PUBDATE, pubdate);
values.put(KEY_NEWS_CATEGORY, category);
values.put(KEY_NEWS_DESCRIPTION, description);
values.put(KEY_NEWS_AUTHOR, author);
mDb.insert(NEWS_TABLE, null, values);
}
/**
* 查询新闻
* @param outline_id
* @return
*/
public Cursor queryChannel(int outline_id) {
String columns[] = { KEY_NEWS_ROWID, KEY_NES_OUTLINE_ID, KEY_NEWS_TITLE, KEY_NEWS_LINK, KEY_NEWS_PUBDATE, KEY_NEWS_CATEGORY, KEY_NEWS_DESCRIPTION, KEY_NEWS_AUTHOR };
Cursor cursor = mDb.query(NEWS_TABLE, columns, "outline_id = "+ outline_id, null, null, null, null);
return cursor;
}
/**
* 根据类型id获取新闻
*
* @param outline_id
* @return
*/
public Channel getChannel(int outline_id) {
Channel channel = new Channel();
Cursor cursor = queryChannel(outline_id);
ArrayList- items = new ArrayList
- ();
// cursor.moveToFirst();
while (cursor.moveToNext()) {
Item item = getItemFromCursor(cursor);
items.add(item);
}
channel.setItems(items);
cursor.close();
return channel;
}
/**
* 从查询指针中获取新闻对象
*
* @param cursor
* @return
*/
public Item getItemFromCursor(Cursor cursor) {
int id = cursor.getInt(cursor.getColumnIndex(KEY_NEWS_ROWID));
String title = cursor.getString(cursor.getColumnIndex(KEY_NEWS_TITLE));
String link = cursor.getString(cursor.getColumnIndex(KEY_NEWS_LINK));
String pubDate = cursor.getString(cursor.getColumnIndex(KEY_NEWS_PUBDATE));
String category = cursor.getString(cursor.getColumnIndex(KEY_NEWS_CATEGORY));
String description = cursor.getString(cursor.getColumnIndex(KEY_NEWS_DESCRIPTION));
String author = cursor.getString(cursor.getColumnIndex(KEY_NEWS_AUTHOR));
Item item = new Item(id, title, link, pubDate, category, description, author);
return item;
}
/**
* 根据新闻id查找新闻
*
* @param news_id
* @return
*/
public Item queryItem(int news_id) {
String columns[] = { KEY_NEWS_ROWID, KEY_NES_OUTLINE_ID, KEY_NEWS_TITLE, KEY_NEWS_LINK, KEY_NEWS_PUBDATE, KEY_NEWS_CATEGORY, KEY_NEWS_DESCRIPTION, KEY_NEWS_AUTHOR };
Cursor cursor = mDb.query(NEWS_TABLE, columns, "_id = " + news_id, null, null, null, null);
Item item = null;
if (cursor.getCount() > 0) {
cursor.moveToFirst();
item = getItemFromCursor(cursor);
}
cursor.close();
return item;
}
/**
* 添加新的盖楼评论
*
* @param news_id
* @param author
* @param contents
* @param parent
*/
public boolean insertNewReply(long news_id, String author, String contents, int parent) {
ContentValues values = new ContentValues();
values.put(KEY_REPLY_AUTHOR, author);
values.put(KEY_REPLY_CONTENRS, contents);
values.put(KEY_REPLY_PARENT, parent);
values.put(KEY_REPLY_NEWS_ID, news_id);
values.put(KEY_REPLY_DATE, getCurrentTime());
long inserId = mDb.insert(REPLY_TABLE, null, values);
if (inserId > -1) {
return true;
} else {
return false;
}
}
/**
* 插入普通评论
*
* @param news_id
* @param author
* @param contents
*/
public boolean insertNewReply(long news_id, String author, String contents) {
// 普通评论作为独立楼层,所以parent直接设置为-1
return insertNewReply(news_id, author, contents, -1);
}
/**
* 获取某条新闻下的盖楼的列表
*
* @param new_id
* @return
*/
public ArrayList
> getReplyList(long new_id) {
Cursor cursor = queryFromReplyTable("news_id = " + new_id);
ArrayList> mList = new ArrayList>();
while (cursor.moveToNext()) {
// 最顶楼层部分获取
ArrayList list = new ArrayList();
Reply r = getReplyByCursor(cursor);
list.add(r);
int parent = r.getParent();
if (parent != -1) {
getBaseTower(mDb, list, new_id, parent);
}
mList.add(list);
}
cursor.close();
return mList;
}
/**
* 所有底楼回复的获取
*
* @param db
* @param list
* @param new_id
* @param parent
*/
public void getBaseTower(SQLiteDatabase db, ArrayList list,
long new_id, long parent) {
Cursor cursor = queryFromReplyTable("_id = " + parent
+ " AND news_id = " + new_id);
if (cursor.getCount() > 0) {
cursor.moveToFirst();
Reply reply = getReplyByCursor(cursor);
// 把盖楼的底楼添加到盖楼前面
list.add(reply);
int thisParent = reply.getParent();
if (thisParent != -1) {
getBaseTower(db, list, new_id, thisParent);
}
}
}
/**
* 从回复表中查询数据
*
* @param where
* @return
*/
private Cursor queryFromReplyTable(String where) {
String[] columns = { KEY_REPLY_ID, KEY_REPLY_NEWS_ID, KEY_REPLY_AUTHOR, KEY_REPLY_CONTENRS, KEY_REPLY_PARENT, KEY_REPLY_DATE };
Cursor cursor = mDb.query(REPLY_TABLE, columns, where, null, null, null, KEY_REPLY_ID + " DESC");
return cursor;
}
/**
* 将数据库中数据转换为回复对象
*
* @param cursor
* @return
*/
private Reply getReplyByCursor(Cursor cursor) {
int id = cursor.getInt(cursor.getColumnIndex(KEY_REPLY_ID));
String author = cursor.getString(cursor.getColumnIndex(KEY_REPLY_AUTHOR));
String contents = cursor.getString(cursor.getColumnIndex(KEY_REPLY_CONTENRS));
String reply_date = cursor.getString(cursor.getColumnIndex(KEY_REPLY_DATE));
int parent = cursor.getInt(cursor.getColumnIndex(KEY_REPLY_PARENT));
int news_id = cursor.getInt(cursor.getColumnIndex(KEY_REPLY_NEWS_ID));
Reply r = new Reply(id, news_id, reply_date, author, contents, parent);
return r;
}
/**
* 向用户数据表插入用户名和密码
*
* @param userName
* 用户名
* @param password
* 密码
*/
public long inserUser(String userName, String password) {
ContentValues values = new ContentValues();
values.put(KEY_USER_NAME, userName);
values.put(KEY_USER_PASSWORD, password);
long inserId = mDb.insert(USER_TABLE, null, values);
return inserId;
}
/**
* 获取新闻评分
*
* @param new_id
* @return
*/
public int[] getScore(long new_id) {
int[] score = new int[5];
String columns[] = { KEY_SCORE_NEWS_ID, KEY_SCORE_NEWS_ID,
KEY_SCORE_ONE, KEY_SCORE_TWO, KEY_SCORE_THREE, KEY_SCORE_FOUR,
KEY_SCORE_FIVE };
Cursor cursor = mDb.query(SCORE_TABLE, columns, KEY_SCORE_NEWS_ID + "="
+ new_id, null, null, null, null);
while (cursor.moveToNext()) {
score[0] = cursor.getInt(cursor.getColumnIndex(KEY_SCORE_ONE));
score[1] = cursor.getInt(cursor.getColumnIndex(KEY_SCORE_TWO));
score[2] = cursor.getInt(cursor.getColumnIndex(KEY_SCORE_THREE));
score[3] = cursor.getInt(cursor.getColumnIndex(KEY_SCORE_FOUR));
score[4] = cursor.getInt(cursor.getColumnIndex(KEY_SCORE_FIVE));
}
cursor.close();
return score;
}
/**
* 对新闻进行评分
*
* @param score
* @param news_id
* @return
*/
public boolean updateScore(int score, long news_id) {
Cursor c = mDb.query(SCORE_TABLE, null, KEY_SCORE_NEWS_ID + "="
+ news_id, null, null, null, null);
if (c.getCount() <= 0) {
ContentValues values = new ContentValues();
values.put(KEY_SCORE_NEWS_ID, news_id);
values.put(KEY_SCORE_ONE, 0);
values.put(KEY_SCORE_TWO, 0);
values.put(KEY_SCORE_THREE, 0);
values.put(KEY_SCORE_FOUR, 0);
values.put(KEY_SCORE_FIVE, 0);
long rowId = mDb.insert(SCORE_TABLE, null, values);
}
c.close();
String key = "";
switch (score) {
case 1:
key = KEY_SCORE_ONE;
break;
case 2:
key = KEY_SCORE_TWO;
break;
case 3:
key = KEY_SCORE_THREE;
break;
case 4:
key = KEY_SCORE_FOUR;
break;
case 5:
key = KEY_SCORE_FIVE;
break;
}
String sql = "update score_tb set " + key + "=" + key + "+1 where "
+ KEY_SCORE_NEWS_ID + "=" + news_id;
Log.e("m_tag", "==sql:" + sql);
mDb.execSQL(sql);
// long rowId = mDb.update(SCORE_TABLE, values, KEY_SCORE_NEWS_ID +
// "="
// + news_id, null);
return true;
}
/**
* 根据用户名和密码查询用户数据库
*
* @param userName
* @param password
* @return
*/
public User qeryUser(String userName, String password) {
User user = null;
long user_id = -1;
String[] columns = { KEY_USER_ID, KEY_USER_NAME, KEY_USER_PASSWORD };
Cursor cursor = mDb.query(USER_TABLE, columns,
"name = ? AND password = ?",
new String[] { userName, password }, null, null, null);
while (cursor.moveToNext()) {
user_id = cursor.getLong(cursor.getColumnIndex(KEY_USER_ID));
user = new User(user_id, userName, password);
}
cursor.close();
return user;
}
/**
* 获取当前日期
*
* @return
*/
private String getCurrentTime() {
Calendar calendar = Calendar.getInstance();
String created = calendar.get(Calendar.YEAR) + "年"
+ (calendar.get(Calendar.MONTH) + 1) + "月"
+ calendar.get(Calendar.DAY_OF_MONTH) + "日"
+ calendar.get(Calendar.HOUR_OF_DAY) + "时"
+ calendar.get(Calendar.MINUTE) + "分";
return created;
}
/**
* 分享文本
*
* @param context
* @param title
* @param text
*/
public static void shareText(Context context, String title, String text) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, title);
intent.putExtra(Intent.EXTRA_TEXT, text);
context.startActivity(Intent.createChooser(intent,
context.getString(R.string.share_to)));
}
public boolean insterMedia(String type, String lane, String speed, String latitude, String altitude, String longitude, String timestamp, String path/*, String mediaId*/) {
SQLiteDatabase db = DatabaseManager.getInstance().getWritableDatabase();
try {
ContentValues values = new ContentValues();
values.put("type", type);
values.put("lane", lane);
values.put("speed", speed);
values.put("latitude", latitude);
values.put("altitude", altitude);
values.put("longitude", longitude);
values.put("timestamp", timestamp);
values.put("path", path);
values.put("files", path);
return db.insert(TableCollection.Params.MEDIA_TAB, null, values) > 0;
} catch (Exception e) {
} finally {
DatabaseManager.getInstance().closeDatabase();
}
return false;
}
public synchronized long getTimeStamp(String mediaId) {
Cursor cursor = null;
long timeStamp = 0;
SQLiteDatabase mDb = DatabaseManager.getInstance().getWritableDatabase();
try {
cursor = mDb.query(TableCollection.Params.MEDIA_TAB, new String[]{ "timestamp" }, " path like '%" + mediaId + "%'", null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
timeStamp = cursor.getLong(cursor.getColumnIndex("timestamp"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != cursor) cursor.close();
DatabaseManager.getInstance().closeDatabase();
}
return timeStamp;
}
/*public boolean deleteMedia(String mediaId) {
SQLiteDatabase db = DatabaseManager.getInstance().getWritableDatabase();
try {
return db.delete(TableCollection.Params.MEDIA_TAB, " mediaId = ? ", new String[] { mediaId }) > 0;
} catch (Exception e) {
} finally {
DatabaseManager.getInstance().closeDatabase();
}
return false;
}*/
/*public int queryCount(String mediaId) {
Cursor cursor = null;
SQLiteDatabase db = DatabaseManager.getInstance().getWritableDatabase();
try {
String[] columns = { "type", "lane", "speed", "latitude", "altitude", "longitude", "timestamp", "path", "mediaId" };
cursor = db.query(TableCollection.Params.MEDIA_TAB, columns, "mediaId = ? ", new String[] { mediaId }, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
return cursor.getCount();
}
} catch (Exception e) {
} finally {
if (null != cursor) cursor.close();
DatabaseManager.getInstance().closeDatabase();
}
return 0;
}*/
/*public synchronized MediaBean getMediaBean(String stamp) {
MediaBean bean = null;
Cursor cursor = null;
SQLiteDatabase mDb = DatabaseManager.getInstance().getWritableDatabase();
try {
String[] columns = { "type", "lane", "speed", "latitude", "altitude", "longitude", "timestamp", "path" };
cursor = mDb.query(TableCollection.Params.MEDIA_TAB, columns, " timestamp = ? ", new String[] { stamp }, null, null, null);
if(cursor != null && cursor.moveToFirst()) {
bean = new MediaBean();
bean.setType(cursor.getString(cursor.getColumnIndex("type")));
bean.setTimestamp(cursor.getString(cursor.getColumnIndex("timestamp")));
bean.setSpeed(cursor.getString(cursor.getColumnIndex("speed")));
bean.setPath(cursor.getString(cursor.getColumnIndex("path")));
bean.setLongitude(cursor.getString(cursor.getColumnIndex("longitude")));
bean.setLatitude(cursor.getString(cursor.getColumnIndex("latitude")));
bean.setLane(cursor.getString(cursor.getColumnIndex("lane")));
bean.setAltitude(cursor.getString(cursor.getColumnIndex("altitude")));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != cursor) cursor.close();
DatabaseManager.getInstance().closeDatabase();
}
return bean;
}*/
// SELECT * FROM mediaTable WHERE INSTR('/storage/sdcard0/AdasDmsVedio/1082786211.mp4', path)
public synchronized MediaBean getMediaBean(String mediaId) {
MediaBean bean = null;
Cursor cursor = null;
SQLiteDatabase mDb = DatabaseManager.getInstance().getWritableDatabase();
try {
String[] columns = { "_id", "type", "lane", "speed", "latitude", "altitude", "longitude", "timestamp", "path", "files" };
cursor = mDb.query(TableCollection.Params.MEDIA_TAB, columns, " path like '%" + mediaId + "%'", null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
do {
String getPath = cursor.getString(cursor.getColumnIndex("path"));
if (getPath.contains(mediaId)) {
bean = new MediaBean();
bean.setId(cursor.getString(cursor.getColumnIndex("_id")));
bean.setType(cursor.getString(cursor.getColumnIndex("type")));
bean.setTimestamp(cursor.getString(cursor.getColumnIndex("timestamp")));
bean.setSpeed(cursor.getString(cursor.getColumnIndex("speed")));
bean.setPath(cursor.getString(cursor.getColumnIndex("path")));
bean.setLongitude(cursor.getString(cursor.getColumnIndex("longitude")));
bean.setLatitude(cursor.getString(cursor.getColumnIndex("latitude")));
bean.setLane(cursor.getString(cursor.getColumnIndex("lane")));
bean.setAltitude(cursor.getString(cursor.getColumnIndex("altitude")));
bean.setFiles(cursor.getString(cursor.getColumnIndex("files")));
break;
}
}while(cursor.moveToNext());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != cursor)
cursor.close();
DatabaseManager.getInstance().closeDatabase();
}
return bean;
}
public boolean deleteMedia(String rowId) {
SQLiteDatabase db = DatabaseManager.getInstance().getWritableDatabase();
try {
return db.delete(TableCollection.Params.MEDIA_TAB, " _id = ? ", new String[] { rowId }) > 0;
} catch (Exception e) {
} finally {
DatabaseManager.getInstance().closeDatabase();
}
return false;
}
// public boolean deleteMedia() {
// SQLiteDatabase db = DatabaseManager.getInstance().getWritableDatabase();
// try {
// return db.delete(TableCollection.Params.MEDIA_TAB, null, null) > 0;
//
// } catch (Exception e) {
// } finally {
// DatabaseManager.getInstance().closeDatabase();
// }
// return false;
// }
// cursor = mDb.query(TableCollection.Params.MEDIA_TAB, new String[]{ "timestamp" }, " path like '%" + mediaId + "%'", null, null, null, null);
// public boolean deleteMediaId(String id) {
// SQLiteDatabase db = DatabaseManager.getInstance().getWritableDatabase();
// try {
// return db.delete(TableCollection.Params.MEDIA_TAB, " path like ? '%" + id + "%'", null) > 0;
// return db.delete(TableCollection.Params.MEDIA_TAB, " path = ? ", new String[]{ id }) > 0;
//
// } catch (Exception e) {
// } finally {
// DatabaseManager.getInstance().closeDatabase();
// }
// return false;
// }
public boolean updatePath(String path, String id) {
SQLiteDatabase mDb = DatabaseManager.getInstance().getReadableDatabase();
try {
ContentValues contentValue = new ContentValues();
contentValue.put("path", path);
return mDb.update(TableCollection.Params.MEDIA_TAB, contentValue, " _id = ? ", new String[]{ id }) > 0;
} catch (Exception e) {
} finally {
DatabaseManager.getInstance().closeDatabase();
}
return false;
}
public ArrayList loadMedia() {
SQLiteDatabase mDb = DatabaseManager.getInstance().getReadableDatabase();
ArrayList list = null;
Cursor cursor = null;
try {
String sql = "select * from "+TableCollection.Params.MEDIA_TAB;
cursor = mDb.rawQuery(sql, null);
if (cursor != null && cursor.moveToFirst()) {
list = new ArrayList();
do {
MediaBean bean = new MediaBean();
bean.setId(cursor.getString(cursor.getColumnIndex("_id")));
bean.setType(cursor.getString(cursor.getColumnIndex("type")));
bean.setLane(cursor.getString(cursor.getColumnIndex("lane")));
bean.setSpeed(cursor.getString(cursor.getColumnIndex("speed")));
bean.setLatitude(cursor.getString(cursor.getColumnIndex("latitude")));
bean.setAltitude(cursor.getString(cursor.getColumnIndex("altitude")));
bean.setLongitude(cursor.getString(cursor.getColumnIndex("longitude")));
bean.setTimestamp(cursor.getString(cursor.getColumnIndex("timestamp")));
bean.setPath(cursor.getString(cursor.getColumnIndex("path")));
bean.setFiles(cursor.getString(cursor.getColumnIndex("files")));
list.add(bean);
} while (cursor.moveToNext());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != cursor) cursor.close();
DatabaseManager.getInstance().closeDatabase();
}
return list;
}
/*public ArrayList getSameMedia(String timeStamp) {
SQLiteDatabase mDb = DatabaseManager.getInstance().getReadableDatabase();
ArrayList list = null;
Cursor cursor = null;
try {
String sql = "select * from "+TableCollection.Params.MEDIA_TAB + " where timestamp = " + timeStamp;
cursor = mDb.rawQuery(sql, null);
if (cursor != null && cursor.moveToFirst()) {
list = new ArrayList();
Mina4Log.d(JSATLApp.TAG, "--cursor != null--");
do {
MediaBean bean = new MediaBean();
bean.setType(cursor.getString(cursor.getColumnIndex("type")));
bean.setLane(cursor.getString(cursor.getColumnIndex("lane")));
bean.setMediaId(cursor.getString(cursor.getColumnIndex("mediaId")));
bean.setSpeed(cursor.getString(cursor.getColumnIndex("speed")));
bean.setLatitude(cursor.getString(cursor.getColumnIndex("latitude")));
bean.setAltitude(cursor.getString(cursor.getColumnIndex("altitude")));
bean.setLongitude(cursor.getString(cursor.getColumnIndex("longitude")));
bean.setTimestamp(cursor.getString(cursor.getColumnIndex("timestamp")));
bean.setPath(cursor.getString(cursor.getColumnIndex("path")));
list.add(bean);
} while (cursor.moveToNext());
}
} catch (Exception e) {
e.printStackTrace();
Mina4Log.d(JSATLApp.TAG, "--getSameMedia--" + e.getMessage());
} finally {
if (null != cursor) cursor.close();
DatabaseManager.getInstance().closeDatabase();
}
return list;
}*/
}
调用直接使用 NewsDataBaseAdapter.shareNewsBaseAdapter(Context). So easy~~~