开门见山的说,咱不搞那么多理论的,直接来写实用的。

 

由于经常用到数据库存储,多以写一篇博文分享下经验,也是自己做个笔记。直接上代码,详情见代码中的注释。

 

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";// 新闻分类idpublic 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";// 评论新闻idpublic 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";// 当前楼层的底楼idpublic 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";// 用户idpublic 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";// 评分idpublic static final String KEY_SCORE_ID = "_id";// 评分的新闻idpublic 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);}@Overridepublic 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);}@Overridepublic 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直接设置为-1return 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~~~

 

 

更多相关文章

  1. Android(安卓)后台静默安装
  2. 查询备份Android(安卓)PDU彩信
  3. Android日历操作
  4. 2014.08.05 ——— android Gson JsonDeserializer
  5. android通讯录数据库表解析和添加,访问通讯录
  6. Android(安卓)中文 API (40) ―― RatingBar
  7. Android(安卓)短信解析
  8. android获取程序安装时间
  9. Android-NDK开发之基础--Android(安卓)JNI实例代码(二)-- 获取/

随机推荐

  1. 使用HTML或Javascript替换网页上的文本
  2. 父范围中的变量不会在匿名函数中被更改[
  3. 如何避免pro拖拉机中的“jasmin .suite()
  4. 如何验证一个大表格
  5. 在迭代完成之前,回调会触发
  6. Knockout.js - 在通过observable设置值
  7. 依据parentId动态构建一颗树
  8. [JavaScript]自执行函数
  9. 如何更改我的按钮文字?
  10. jQuery方向感知悬停与CSS3过渡