久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    android?sqlite?編程

     敬而遠(yuǎn) 2012-12-04
    SQLite 數(shù)據(jù)庫功能非常強(qiáng)大,使用起來也非常方便,SQLite數(shù)據(jù)庫的一般操作包括:創(chuàng)建數(shù)據(jù)庫、打開數(shù)據(jù)庫、創(chuàng)建表、向表中添加數(shù)據(jù)、從表中刪除數(shù)據(jù)、修改表中的數(shù)據(jù)、關(guān)閉數(shù)據(jù)庫、刪除指定表、刪除數(shù)據(jù)庫和查詢表中的某條數(shù)據(jù)。下面我們分別來學(xué)習(xí)這些基本操作。

     
    1.創(chuàng)建和打開數(shù)據(jù)庫
      在Android 中創(chuàng)建和打開一個數(shù)據(jù)庫都可以使用openOrCreateDatabase 方法來實(shí)現(xiàn),因?yàn)樗鼤詣尤z測是否存在這個數(shù)據(jù)庫,如果存在則打開,不過不存在則創(chuàng)建一個數(shù)據(jù)庫;創(chuàng)建成功則返回一個 SQLiteDatabase對象,否則拋出異常FileNotFoundException。下面我們來創(chuàng)建一個名為"Examples_06_05.db"的數(shù)據(jù)庫,并返回一個SQLiteDatabase對象 mSQLiteDatabase。
     
    1. mSQLiteDatabase this.openOrCreateDatabase("Example_06_05.db"MODE_PRIVATE, null);  


       2.創(chuàng)建表
       一個數(shù)據(jù)庫中可以包含多個表,我們的每一條數(shù)據(jù)都保存在一個指定的表中,要創(chuàng)建表可以通過execSQL 方法來執(zhí)行一條SQL語句。execSQL能夠執(zhí)行大部分的SQL語句,下面我們來創(chuàng)建一個名為table1 且包含3個字段的表。 具體代碼如下:
     
    1. String CREATE_TABLE "CREATE TABLE table1 (_id INTEGER PRIMARY KEY, num INTEGER,  data TEXT)";   
    2. mSQLiteDatabase.execSQL(CREATE_TABLE);  


        3.向表中添加一條數(shù)據(jù)
        可以使用insert 方法來添加數(shù)據(jù),但是 insert 方法要求把數(shù)據(jù)都打包到 ContentValues 中, ContentValues 其實(shí)就是一個Map, key值是字段名稱, Value值是字段的值。通過 ContentValues 的 put 方法就可以把數(shù)據(jù)放到ContentValues中,然后插入到表中去。具體實(shí)現(xiàn)如下:
     
    1. ContentValues  cv   new ContentValues();   
    2. cv.put(TABLE_NUM, 1);   
    3. cv.put(TABLE_DATA, "測試數(shù)據(jù)");   
    4. mSQLiteDatabase.insert(TABLE_NAME, nullcv);   
    5.   
    6.   //這樣同樣可以使用execSQL方法來執(zhí)行一條“插入”的SQL語句,代碼如下:   
    7. String  INSERT_DATA "INSERT INTO table1 (_id, num, data) values (1, 1, '通過SQL語句插入')" ;   
    8. mSQLiteDatabase.execSQL(INSERT_DATA);  


        4.從表中刪除數(shù)據(jù)
         要刪除數(shù)據(jù)可以使用delete 方法,下面我們刪除字段 "_id" 等于1的數(shù)據(jù),具體代碼如下:
     
    1. mSQLiteDatabase.delete("Examples_06_05.db"where_id="+0null);   
    2. 通過 execSQL方法執(zhí)行SQL語句刪除數(shù)據(jù)如下:   
    3. String  DELETE_DATA "DELETE FROM table1 WHERE _id=1";   
    4. mSQLiteDatabase.execSQL(DELETE_DATA);  


        5.修改表中的數(shù)據(jù)
        如果添加了數(shù)據(jù)后發(fā)現(xiàn)數(shù)據(jù)有誤,這時需要修改這個數(shù)據(jù),可以使用updata方法來更新一條數(shù)據(jù)。下面我們來修改 "num" 值為0的數(shù)據(jù),具體代碼如下:
     
    1. ContentValues cv new ContentValues();   
    2. cv.put(TABLE_NUM, 3);   
    3. cv.put(TABLE_DATA, "修改后的數(shù)據(jù)");   
    4. mSQLiteDatabase.update("table1" cv, "num " "=" Integer.toString(0), null);  


        6.關(guān)閉數(shù)據(jù)庫
         關(guān)閉數(shù)據(jù)庫很重要,也是大家經(jīng)常容易忘記的。關(guān)閉的方法很簡單,直接使用SQLiteDatabase 的 close 方法。具體代碼如下:
     
    1. mSQLiteDatabase.close();  


        7.刪除指定表
        這里我們使用execSQL方法來實(shí)現(xiàn),具體代碼如下:
      
     
    1. mSQLiteDatabase.execSQL("DROP TABLE table1");  


       8.刪除數(shù)據(jù)庫
        要刪除一個數(shù)據(jù)庫,直接使用deleteDatabase 方法即可,具體代碼如下:
        
     
    1. this.deleteDatabase("Examples_06_05.db");  


        9.查詢表中的某條數(shù)據(jù)
         在Android中查詢數(shù)據(jù)是通過Cursor類來實(shí)現(xiàn)的,當(dāng)我們使用SQLiteDatabase.query()方法時,會得到一個Cursor對象,Cursor指向的就是每一條數(shù)據(jù)。它提供了很多有關(guān)查詢的方法,具體方法如下:

        方法                                                                                     說明 
        move                                               以當(dāng)前的位置為參考,將Cursor移動到指定的位置,成功返回true, 失敗返回false

        moveToPosition                                將Cursor移動到指定的位置,成功返回true,失敗返回false

        moveToNext                                     將Cursor向前移動一個位置,成功返回true,失敗返回false

       moveToLast                                       將Cursor向后移動一個位置,成功返回true,失敗返回 false。

       movetoFirst                                       將Cursor移動到第一行,成功返回true,失敗返回false

       isBeforeFirst                                      返回Cursor是否指向第一項(xiàng)數(shù)據(jù)之前

       isAfterLast                                         返回Cursor是否指向最后一項(xiàng)數(shù)據(jù)之后
      
       isClosed                                            返回Cursor是否關(guān)閉

       isFirst                                                返回Cursor是否指向第一項(xiàng)數(shù)據(jù)

       isLast                                                返回Cursor是否指向最后一項(xiàng)數(shù)據(jù)

       isNull                                                返回指定位置的值是否為null

       getCount                                           返回總的數(shù)據(jù)項(xiàng)數(shù)

       getInt                                               返回當(dāng)前行中指定的索引數(shù)據(jù)

       下面我們就是用Cursor來查詢數(shù)據(jù)庫中的數(shù)據(jù),具體代碼如下:
     
    1. Cursor cur mSQLiteDatabase.rawQuery("SELECT FROM table"null);   
    2. ifcur != null ){   
    3.    ifcur.moveToFirst() ){   
    4.        do{   
    5.                   int numColumn cur.getColumnIndex("num");   
    6.                   int num            cur.getInt(numColumn);   
    7.             }whilecur.moveToNext());   
    8.       }   
    9.   


    最后在提醒大家一句:    使用SQLiteDatabase數(shù)據(jù)庫要及時關(guān)閉(close), 否則可能會拋出SQLiteException異常。

      本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 婷婷综合久久中文字幕| AV免费播放一区二区三区| 蜜桃臀无码AV在线观看| 久久大蕉香蕉免费| 亚洲偷自拍国综合| 老湿机69福利区18禁网站| 影音先锋啪啪av资源网站| 最新亚洲人成无码WWW| 国产V亚洲V天堂A无码| 国产成人无码AV大片大片在线观看| 一二三四在线视频观看社区| 无码人妻一区二区三区精品视频| 国产情侣激情在线对白| 欧美性色欧美A在线图片| 国产明星精品无码AV换脸| 精精国产XXXX视频在线播放| 免费AV片在线观看网址| 久久久这里只有免费精品| 国产在线不卡精品网站| 亚洲尤码不卡av麻豆| 免费大片黄国产在线观看| 亚洲熟妇精品一区二区| 在厨房被C到高潮A毛片奶水| 无码国产偷倩在线播放| 欧美国产日韩A在线观看| 亚洲色欲色欲WWW在线丝| 国内精品一区二区不卡| 国产69精品久久久久999小说| 国产AV老师黑色丝袜美腿| 成人午夜av在线播放| 亚洲AV成人中文无码专区| 噜噜久久噜噜久久鬼88| 中文字幕日韩精品有码| 在线精品国产一区二区三区| 青青国产揄拍视频| 免费无码黄网站在线观看| 狠狠色噜噜狠狠狠狠AV| 国产中年熟女大集合| 成人拍拍拍无遮挡免费视频| 少妇AV射精精品蜜桃专区| 乱子真实露脸刺激对白|