国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

詳解Android中一些SQLite的增刪改查操作

2019-12-12 06:19:58
字體:
供稿:網(wǎng)友

在Android開發(fā)中經(jīng)常要涉及到對數(shù)據(jù)的操作。Android本身提供了四種數(shù)據(jù)存儲方式。包括:SharePreference,SQLite,Content Provider,F(xiàn)ile
在Android,數(shù)據(jù)都是么私有的,要實(shí)現(xiàn)數(shù)據(jù)共享,正確方式是使用Content Provider。
SQLite: SQLite是一個(gè)輕量級的數(shù)據(jù)庫,支持基本SQL語法,是常被采用的一種數(shù)據(jù)存儲方式。Android為此數(shù)據(jù)庫提供了一個(gè)名為SQLiteDatabase的類,封裝了一些操作數(shù)據(jù)庫的API。
SharedPreference: 除SQLite數(shù)據(jù)庫外,另一種常用的數(shù)據(jù)存儲方式,其本質(zhì)就是一個(gè)xml文件,常用于存儲較簡單的參數(shù)設(shè)置。
File: 即常說的文件(I/O)存儲方法,常用語存儲大數(shù)量的數(shù)據(jù),但是缺點(diǎn)是更新數(shù)據(jù)將是一件困難的事情。
ContentProvider:Android系統(tǒng)中能實(shí)現(xiàn)所有應(yīng)用程序共享的一種數(shù)據(jù)存儲方式,由于數(shù)據(jù)通常在各應(yīng)用間的是互相私密的,所以此存儲方式較少使用,但是其又是必不可少的一種存儲方式。例如音頻,視頻,圖片和通訊錄,一般都可以采用此種方式進(jìn)行存儲。每個(gè)Content Provider都會對外提供一個(gè)公共的URI(包裝成Uri對象),如果應(yīng)用程序有數(shù)據(jù)需要共享時(shí),就需要使用Content Provider為這些數(shù)據(jù)定義一個(gè)URI,然后其他的應(yīng)用程序就通過Content Provider傳入這個(gè)URI來對數(shù)據(jù)進(jìn)行操作。

本文主要是講一些SQLite的操作并附上代碼。

SQLite是一種轉(zhuǎn)為嵌入式設(shè)備設(shè)計(jì)的輕型數(shù)據(jù)庫,其只有五種數(shù)據(jù)類型,分別是:
NULL:         空值
INTEGER:   整數(shù)
REAL:      浮點(diǎn)數(shù)
TEXT:      字符串
BLOB:     大數(shù)據(jù)

在SQLite中,并沒有專門設(shè)計(jì)BOOLEAN和DATE類型,因?yàn)锽OOLEAN型可以用INTEGER的0和1代替true和false,而DATE類型則可以擁有特定格式的TEXT、REAL和INTEGER的值來代替顯示,為了能方便的操作DATE類型,SQLite提供了一組函數(shù),詳見:http://www.sqlite.org/lang_datefunc.html,這樣簡單的數(shù)據(jù)類型設(shè)計(jì)更加符合嵌入式設(shè)備的要求。

import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase;  /**  * 對表的增刪改查的操作。這里的表里只有uid一列作為舉例。  */ public class DemoDBUtil {   //要操作的表名  public static final String DEMO_DB_NAME = "demo_db_name";  //SQLiteDatabase對象  private SQLiteDatabase sqLiteDatabase;    /**   * 帶參構(gòu)造方法,初始化SQLiteDatabase。   * @param sqLiteDatabase SQLiteDatabase實(shí)例   */  public DemoDBUtil(SQLiteDatabase sqLiteDatabase){   this.sqLiteDatabase = sqLiteDatabase;  }    /**   * 增加數(shù)據(jù)。   * @param uid 要新增的uid   */  public void add(String uid){   ContentValues values = new ContentValues();   values.put("uid", uid);   sqLiteDatabase.insert(DEMO_DB_NAME, null, values);  }    /**   * 刪除表里所有數(shù)據(jù)。   */  public void delete(){   sqLiteDatabase.delete(DEMO_DB_NAME, null, null);  }    /**   * 刪除表里與uid對應(yīng)的數(shù)據(jù)。   * @param uid 某個(gè)uid   */  public void delete(String uid){   sqLiteDatabase.delete(DEMO_DB_NAME, "uid = ? ", new String[]{uid});  }    /**   * 更新表,將表所有uid替換為newUid。   */  public void update(){   ContentValues values = new ContentValues();   values.put("uid", "newUid");   sqLiteDatabase.update(DEMO_DB_NAME, values, null, null);  }    /**   * 將表里對應(yīng)的uid替換為newUid。   * @param uid 表里的某個(gè)uid   */  public void update(String uid){   ContentValues values = new ContentValues();   values.put("uid", "newUid");   sqLiteDatabase.update(DEMO_DB_NAME, values, "uid = ? ", new String[]{uid});  }    /**   * 查詢表里所有數(shù)據(jù),取得uid對應(yīng)的值。   */  public void query(){   Cursor cursor = sqLiteDatabase.query(DEMO_DB_NAME, null, null, null, null, null, null);   while (cursor.moveToNext()) {    String uid = cursor.getString(cursor.getColumnIndex("uid"));   }   if (null != cursor) {    cursor.close();   }  }    /**   * 取得對應(yīng)uid的值。   * @param uid 表里的某個(gè)uid   */  public void query(String uid){   Cursor cursor = sqLiteDatabase.query(DEMO_DB_NAME, null, "uid = ? ", new String[]{uid}, null, null, null);   while (cursor.moveToNext()) {    String queryUid = cursor.getString(cursor.getColumnIndex("uid"));   }   if (null != cursor) {    cursor.close();   }  }    /**   * 取得最后一條記錄。   */  public void queryLastRecord(){   String lastTimeSql = "select * from demo_db_name order by id desc LIMIT 1";   Cursor cursor = sqLiteDatabase.rawQuery(lastTimeSql, null);   while (cursor.moveToNext()) {    String queryUid = cursor.getString(cursor.getColumnIndex("uid"));   }   if (null != cursor) {    cursor.close();   }  } } 

上文主要是針對表的一個(gè)簡單的增刪改查的操作,可以根據(jù)實(shí)際情況修改來滿足項(xiàng)目的需要。

以上就是本文的全部內(nèi)容,希望能給大家一個(gè)參考,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 浑源县| 江源县| 通道| 通州区| 农安县| 乌拉特前旗| 饶平县| 泗洪县| 怀柔区| 太白县| 商水县| 个旧市| 崇义县| 兰州市| 白城市| 扎囊县| 柳州市| 河津市| 彭阳县| 永泰县| 宕昌县| 蕲春县| 涿鹿县| 师宗县| 土默特左旗| 东山县| 大关县| 色达县| 拉孜县| 大渡口区| 沁源县| 抚松县| 黔南| 宁夏| 北川| 海口市| 隆尧县| 沙坪坝区| 宜良县| 浑源县| 甘孜|