国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

數(shù)據(jù)存儲(chǔ)與訪問(wèn)之SQLite數(shù)據(jù)庫(kù)

存儲(chǔ) 存儲(chǔ)軟件
簡(jiǎn)單點(diǎn)說(shuō)就是:寫(xiě)在事務(wù)里的所有數(shù)據(jù)庫(kù)操作都成功,事務(wù)提交,否則,事務(wù)回滾,就是回到前面 的狀態(tài)——未執(zhí)行數(shù)據(jù)庫(kù)操作的時(shí)候!另外,前面我們也將了,在data/data/<包名>/database/目錄 下除了有我們創(chuàng)建的db文件外,還有一個(gè)xxx.db-journal這個(gè)文件就是用來(lái)讓數(shù)據(jù)庫(kù)支持事務(wù)而 產(chǎn)生的 臨時(shí)的日志文件!

1.SQLite事務(wù)

 

簡(jiǎn)單點(diǎn)說(shuō)就是:寫(xiě)在事務(wù)里的所有數(shù)據(jù)庫(kù)操作都成功,事務(wù)提交,否則,事務(wù)回滾,就是回到前面 的狀態(tài)——未執(zhí)行數(shù)據(jù)庫(kù)操作的時(shí)候!另外,前面我們也將了,在data/data/<包名>/database/目錄 下除了有我們創(chuàng)建的db文件外,還有一個(gè)xxx.db-journal這個(gè)文件就是用來(lái)讓數(shù)據(jù)庫(kù)支持事務(wù)而 產(chǎn)生的 臨時(shí)的日志文件!

[[236445]]

數(shù)據(jù)存儲(chǔ)與訪問(wèn)之SQLite數(shù)據(jù)庫(kù)

2.SQLite存儲(chǔ)大二進(jìn)制文件

當(dāng)然,一般我們很少往數(shù)據(jù)庫(kù)中存儲(chǔ)大二進(jìn)制文件,比如圖片,音頻,視頻等,對(duì)于這些我們一般 是存儲(chǔ)文件路徑,但總會(huì)有些奇葩的需求,某天你突然想把這些文件存到數(shù)據(jù)庫(kù)里,下面我們以 圖片為例子,將圖片保存到SQLite中,以及讀取SQLite中的圖片!

數(shù)據(jù)存儲(chǔ)與訪問(wèn)之SQLite數(shù)據(jù)庫(kù)

3.SimpleCursorAdapter綁定數(shù)據(jù)庫(kù)數(shù)據(jù)

當(dāng)然,這個(gè)玩玩可以,還是不建議使用,盡管用起來(lái)很簡(jiǎn)單! 其實(shí)在講ContentProvider我們就使用過(guò)這個(gè)東西來(lái)綁定聯(lián)系人列表!這里就不寫(xiě)實(shí)例了, 直接上核心代碼!需要的自己搗鼓搗鼓就好了,另外,現(xiàn)在我們一般很少自己寫(xiě)數(shù)據(jù)庫(kù)的東西 ,一般是通過(guò)第三方的框架:ormlite,greenDao等,在進(jìn)階部分,我們會(huì)再來(lái)學(xué)習(xí)~

數(shù)據(jù)存儲(chǔ)與訪問(wèn)之SQLite數(shù)據(jù)庫(kù)

4.數(shù)據(jù)庫(kù)升級(jí)的一些集錦

PS:好吧,這一塊我并沒(méi)有做過(guò),始終是項(xiàng)目經(jīng)驗(yàn)不夠,公司的產(chǎn)品都是定位類的,剛看過(guò)公司 項(xiàng)目,發(fā)現(xiàn)前人留下的代碼是:onCreate()創(chuàng)建DB,然后onUpgrade()把前面的DB刪掉,然后 再調(diào)用onCreate()方法!看了幾個(gè)版本的代碼,發(fā)現(xiàn)并沒(méi)有數(shù)據(jù)庫(kù)升級(jí)的操作...沒(méi)得借鑒, 只能參考下別人的做法了,下面是小豬查閱資料后的一些歸納,如果有什么不對(duì),歡迎指出, 可能有些第三方的框架已經(jīng)弄好了這個(gè),時(shí)間關(guān)系,就不慢慢去考究了!知道可以留言,謝謝!

1)什么是數(shù)據(jù)庫(kù)版本升級(jí)?怎么升級(jí)法?

 

答:假如我們開(kāi)發(fā)了一款A(yù)PP,里面用到了數(shù)據(jù)庫(kù),我們假定這個(gè)數(shù)據(jù)庫(kù)版本為v1.0, 在這個(gè)版本,我們創(chuàng)建了一個(gè)x.db的數(shù)據(jù)庫(kù)文件,我們通過(guò)onCreate()方法創(chuàng)建了***個(gè)table, t_user,里面有兩個(gè)字段:_id,user_id;后面我們想增加一個(gè)字段user_name,這個(gè)時(shí)候 我們就需要對(duì)數(shù)據(jù)庫(kù)表的結(jié)構(gòu)進(jìn)行修改了,而我們可以把更新數(shù)據(jù)庫(kù)的操作梵高onUpgrade() 方法中,我們只需要在實(shí)例化自定義SQLiteOpenHelper的時(shí)候,修改版本號(hào),比如把1改成2 這樣,就會(huì)自動(dòng)調(diào)用onUpgrade()的方法了!另外,對(duì)于每個(gè)數(shù)據(jù)庫(kù)版本我們都應(yīng)該做好 相應(yīng)的記錄(文檔),類似于下面這種:

數(shù)據(jù)庫(kù)版本andoid對(duì)應(yīng)版本內(nèi)容v1.01***個(gè)版本,包含兩個(gè)字段...v1.12數(shù)據(jù)保留,新增user_name字段

2)一些疑問(wèn)以及相關(guān)解決方案

①應(yīng)用升級(jí),數(shù)據(jù)庫(kù)文件是否會(huì)刪除?

答:不會(huì)!數(shù)據(jù)什么的都在!

②如果我想刪除表中某個(gè)字段或者增加一個(gè)新的字段,原先的數(shù)據(jù)還在嗎?

答:在的!

③你剛說(shuō)的那種粗暴的更新數(shù)據(jù)庫(kù)版本的方式,不保留數(shù)據(jù)的,可以貼下嗎?

答:可以,這里用的是第三方的ormlite,你也可以自己寫(xiě)數(shù)據(jù)庫(kù)創(chuàng)建以及刪除的代碼:

數(shù)據(jù)存儲(chǔ)與訪問(wèn)之SQLite數(shù)據(jù)庫(kù)

 

 

④比如是這種,假如我們已經(jīng)升級(jí)到第三個(gè)版本了,我們?cè)诘诙€(gè)版本增加了一個(gè)表, 然后第三個(gè)版本也增加了一個(gè)表,加入用戶直接從***個(gè)版本升級(jí)到第三個(gè)版本,這樣 沒(méi)經(jīng)過(guò)第二個(gè)版本,就沒(méi)有增加的那個(gè)表,這可怎么破?

答:很簡(jiǎn)單,我們可以在onUpgrade()里寫(xiě)一個(gè)switch(),結(jié)構(gòu)如下:

  1. public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, 
  2.  
  3. int arg2, int arg3) { 
  4.  
  5. switch(arg2){ 
  6.  
  7. case 1: 
  8.  
  9. db.execSQL(***個(gè)版本的建表語(yǔ)句); 
  10.  
  11. case 2: 
  12.  
  13. db.execSQL(第二個(gè)版本的建表語(yǔ)句); 
  14.  
  15. case 3: 
  16.  
  17. db.execSQL(第三個(gè)版本的建表語(yǔ)句); 
  18.  
  19.  

細(xì)心的你可能發(fā)現(xiàn)這里并沒(méi)有寫(xiě)break,這就對(duì)了,這是為了保證跨版本升級(jí)時(shí),每次數(shù)據(jù)庫(kù) 修改都能全部執(zhí)行到!這樣可以保證表結(jié)構(gòu)都是***的!另外不一定是建表語(yǔ)句,修改表結(jié)構(gòu) 也可以哦!

⑤舊表的設(shè)計(jì)太糟糕,很多字段要改,改動(dòng)太多,想建一個(gè)新表,但是表名要一樣 而且以前的一些數(shù)據(jù)要保存到新表中!

答:呵呵,給你跪了,當(dāng)然,也有解決辦法,下面說(shuō)下思路:

1.將舊表改名成臨時(shí)表: ALTER TABLE User RENAME TO _temp_User;

2.創(chuàng)建新表: CREATE TABLE User (u_id INTEGER PRIMARY KEY,u_name VARCHAR(20),u_age VARCHAR(4));

3.導(dǎo)入數(shù)據(jù); INSERT INTO User SELECT u_id,u_name,"18" FROM _temp_User; //原表中沒(méi)有的要自己設(shè)個(gè)默認(rèn)值

4.刪除臨時(shí)表; DROP TABLE_temp_User;

本節(jié)小結(jié):

好的,本節(jié)我們對(duì)SQLite的事務(wù),大二進(jìn)制存儲(chǔ),SimpleCursorAdapter以及數(shù)據(jù)庫(kù)升級(jí)的 一些問(wèn)題進(jìn)行了探究,而關(guān)于SQLite的東西,我們暫時(shí)就學(xué)這么多,關(guān)于第三方的使用,以及 一些高深的話題,我們到進(jìn)階的時(shí)候再和大家一起去研究

 

責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2011-07-01 14:06:57

Qt sqlite

2011-03-03 11:07:57

Spring數(shù)據(jù)庫(kù)訪問(wèn)ORM

2011-07-12 15:22:04

SQLite數(shù)據(jù)庫(kù)

2017-07-12 09:20:42

SQLite數(shù)據(jù)庫(kù)移植

2019-08-15 07:00:54

SQLite數(shù)據(jù)庫(kù)內(nèi)存數(shù)據(jù)庫(kù)

2011-07-20 12:34:49

SQLite數(shù)據(jù)庫(kù)約束

2011-08-04 18:00:47

SQLite數(shù)據(jù)庫(kù)批量數(shù)據(jù)

2019-06-20 15:25:14

MySQLL數(shù)據(jù)庫(kù)存儲(chǔ)

2024-10-28 16:31:03

2011-08-02 16:16:08

iPhone開(kāi)發(fā) SQLite 數(shù)據(jù)庫(kù)

2010-06-30 14:24:08

SQL Server數(shù)

2011-07-05 10:16:16

Qt 數(shù)據(jù)庫(kù) SQLite

2011-08-24 13:49:45

Access數(shù)據(jù)庫(kù)轉(zhuǎn)化

2011-08-03 13:28:08

Oracle數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)控制文件

2019-08-27 15:00:09

MySQL數(shù)據(jù)庫(kù)存儲(chǔ)

2013-06-14 09:54:04

Unity3D

2013-09-02 14:41:05

Java嵌入式SQLite

2010-04-16 13:34:00

Oracle Java

2010-12-20 09:44:36

SQLite.C#

2011-08-10 15:46:29

數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美一级片免费看| 亚洲国产人成综合网站| 亚洲精品福利| 99综合在线| 欧美日韩日日摸| av动漫在线免费观看| 高清国语自产拍免费一区二区三区| 国产精品免费一区二区三区观看| 国产黄色高清在线| 国产综合av| 亚洲婷婷在线| 欧美激情综合网| 亚洲人成电影在线观看天堂色| 天天色综合社区| 国产精品视频一区视频二区| 18成人在线视频| 91免费福利视频| 中文字幕在线不卡一区二区三区| 欧美乱大交xxxxx| 欧美午夜一区二区三区免费大片| 国产成人a亚洲精品| 欧美三级午夜理伦三级富婆| 黄色另类av| 亚洲婷婷伊人| 九九精品在线观看| 成人在线视频免费| 亚洲第一区在线观看| av在线免费网址| 欧美成人欧美edvon| av毛片在线看| 精品sm捆绑视频| 一区二区三区短视频| 日韩欧美黄色影院| 岛国片av在线| 亚洲国产97在线精品一区| 日本动漫同人动漫在线观看| 精品伦理精品一区| 色在线视频网| 欧美一区二区视频在线观看 | 91老司机在线| 国模冰冰炮一区二区| 欧美在线观看www| 伊人久久婷婷| 成人精品网站在线观看| 韩漫成人漫画| 日韩av影视在线| 毛片网站在线| 不卡av免费在线观看| 日韩av大片免费看| 国产91精品黑色丝袜高跟鞋| 国产精品欧美一区喷水| 亚洲电影影音先锋| 午夜不卡视频| 国产911在线观看| 91久久精品国产91久久性色tv| 日韩一区二区三区视频| 亚洲国产另类精品专区| 欧美日韩第一区| 超碰97久久国产精品牛牛| 精品视频在线一区二区| 国产无限制自拍| 国产欧美一区二区三区另类精品 | 91视频国产高清| 国产精品不卡视频| 国内精品麻豆美女在线播放视频| a级网站在线播放| www.亚洲天堂网| 国产欧美精品一区二区三区-老狼 国产欧美精品一区二区三区介绍 国产欧美精品一区二区 | 国产精品66部| 国产99亚洲| 天天躁日日躁成人字幕aⅴ| av中文字幕在线看| 午夜国产在线| 免费黄网站在线| 国产午夜在线观看| 日韩欧美一区三区| 成人网在线观看| 伊人久久久久久久久久久久久| 一区二区三区在线免费视频| 中文字幕成人网| 韩国女主播成人在线| 国产精品一区二区三区四区 | 两个人看的在线视频www| 国语一区二区三区| 国产精品一区亚洲| 久久久久国产精品一区二区| 国产成人午夜视频| 国产免费成人在线视频| 国产人妖乱国产精品人妖| 国产精品久久久久久户外露出| 中文一区二区在线观看| 六月丁香久久丫| 国内在线观看一区二区三区| 日韩在线激情| 成人毛片免费| 自拍视频一区| 精品国产一区二区三区成人影院| 九九热hot精品视频在线播放| 亚洲高清黄色| 久久亚洲国产| 不卡av一区二区| 国产综合自拍| 欧美日韩激情在线一区二区三区| 国产精品一区二区av日韩在线| 亚洲成人av| 91视视频在线观看入口直接观看www | 成人免费在线视频网站| 玩弄中年熟妇正在播放| 97在线免费视频观看| 噜噜噜噜噜久久久久久91| 在线亚洲美日韩| 免费在线观看视频a| 伊人久久婷婷色综合98网| 久草在线新资源| 麻豆视频在线观看免费网站| 一区中文字幕| 一级欧美视频| 国产另类在线| 日韩av专区| 国内综合精品午夜久久资源| 久久aⅴ国产紧身牛仔裤| 国产一区二区三区蝌蚪| 国产精品1024久久| av亚洲精华国产精华| 一区视频在线播放| 精品视频资源站| 亚洲成av人片在线观看无码| 亚洲国产精品久久久久婷婷884| 亚洲电影激情视频网站| 欧美xxxxxxxx| 国产专区一区二区| 最新中文字幕av专区| 性刺激的欧美三级视频| 毛片免费在线观看| 超碰免费在线播放| 好吊妞视频这里有精品| 亚洲人成亚洲精品| 成人黄色av电影| 精品捆绑美女sm三区| 亚洲免费电影在线观看| 亚洲精品一区二| 蜜桃视频网站在线| 午夜影院欧美| 美女视频网站久久| 亚洲少妇30p| 欧美不卡视频一区发布| 久久99欧美| gogo久久| 国产自产高清不卡| 亚洲国产精品视频在线观看 | 懂色av一区二区三区免费观看 | 性欧美大战久久久久久久| 国产视频在线看| 亚洲成人国产| 精品高清美女精品国产区| 欧美在线视频观看| 国产日韩一区二区在线| 成人在线观看免费视频| 国产乱码一区二区三区| 亚洲系列中文字幕| 日韩妆和欧美的一区二区| 中文字幕在线官网| 99re热视频这里只精品| 欧美另类99xxxxx| 亚洲人成无码www久久久| 青青在线精品| 91免费看视频| 欧洲日本亚洲国产区| 毛片在线能看| 免费在线成人网| 中文欧美在线视频| 欧美一区二区三区爽大粗免费| 国产精品丝袜在线播放| 亚洲国产中文字幕在线视频综合| 国产精品久久久久久久免费大片| 色a资源在线| 成人不卡免费av| 国产精品成人在线| 米奇精品一区二区三区| 国产精品亚洲第一区在线暖暖韩国| 久久夜色撩人精品| 在线观看国产v片| 丝袜亚洲精品中文字幕一区| 欧美国产日韩一区二区三区| 亚洲欧美日本免费| 秋霞影院一区二区| 亚州国产精品久久久| 久久国产精品黑丝| 一区二区三区在线视频免费| 少妇精品久久久久久久久久| 国内毛片久久| 亚洲成人av在线播放| 国产色视频网站| 日韩av中文字幕一区二区三区 | 国产精品久久久久久久久动漫 | 美日韩精品免费观看视频| 久久久久久久影视| 中文字幕第一页久久| 在线观看精品视频| 在线视频免费在线观看一区二区|