For investors
股價:
5.36 美元 %For investors
股價:
5.36 美元 %認(rèn)真做教育 專心促就業(yè)
關(guān)于“android數(shù)據(jù)庫操作優(yōu)化,android數(shù)據(jù)庫操作示例”的內(nèi)容是不是同學(xué)們期待已久了呢,今天android培訓(xùn)講師整理有關(guān)android上數(shù)據(jù)庫操作的文章,現(xiàn)在給大家分享下。
1.由于SQLiteDatabase對象較為耗費資源,所以我們在使用完SQLiteDatabase對象之后,必須立即關(guān)閉它,避免它繼續(xù)占用資源,否則我們繼續(xù)程序可能會導(dǎo)致OOM或者其他異常;
2.同理,我們在使用完cursor之后也應(yīng)該立即關(guān)閉cursor,避免資源浪費;
3.我們在關(guān)閉數(shù)據(jù)庫之前,必須將取得的數(shù)據(jù)保存到Map或者List中,否則關(guān)閉數(shù)據(jù)庫之后,數(shù)據(jù)也會隨之消失;
4.使用明確的查詢語句,在數(shù)據(jù)庫的查詢中避免使用select * from table這樣的語句,我們一般不會用到全部的數(shù)據(jù),但這樣查詢不僅浪費時間,也浪費android有限的內(nèi)存,所以我們必須明確查詢目標(biāo),例如:select id,name from people;
5.在較為頻繁的數(shù)據(jù)庫操作中(例如批量插入數(shù)據(jù)),可以使用數(shù)據(jù)庫事物來處理頻繁操作(如果只有一個數(shù)據(jù)操作,則android默認(rèn)使用事物);
6.在sqlite數(shù)據(jù)庫中使用索引,給經(jīng)常查詢的列創(chuàng)建索引,但索引不適用于較大的數(shù)據(jù)庫,較大的數(shù)據(jù)庫創(chuàng)建索引會耗費太多的時間,而且每次改動一條數(shù)據(jù),整個索引都將重新創(chuàng)建;
7.如果需要在pc上制作數(shù)據(jù)庫db文件,推薦使用Navicat Premium,功能強大,但是費用也很強大,不過可以免費試用;
8.制作本地數(shù)據(jù)庫db文件的時候,需要使用UTF-8編碼(很多pc端sqlite3工具不支持utf-8編碼或者保持和系統(tǒng)編碼一致),否者在取數(shù)據(jù)的時候會出現(xiàn)亂碼,另外,根據(jù)我們使用的pc數(shù)據(jù)庫文件不同,我們可能會生成不同的sqlite3數(shù)據(jù)庫的后綴文件,例如.s3db文件,這個其實沒有影響,android數(shù)據(jù)庫會識別它的,如果你感覺別扭,可以手動改為.db就可以了,這也是沒關(guān)系的;
9.制作本地數(shù)據(jù)庫還有一點比較重要的就是默認(rèn)主鍵必須為“_id”并設(shè)置為自動增長,不可以是其他的,而且每個表都必須有,如果你的數(shù)據(jù)庫沒有這個主鍵,在你的app運行中會報錯,日志提示缺少“_id”字段,至于為什么應(yīng)用內(nèi)創(chuàng)建數(shù)據(jù)庫不會產(chǎn)生這樣的問題,那是因為android系統(tǒng)默認(rèn)在創(chuàng)建數(shù)據(jù)庫的時候就是為“_id”為主鍵的,即使你沒有寫這樣的創(chuàng)建語句;
10.還有好多人不知道怎么將mysql或者execl中的數(shù)據(jù)導(dǎo)入到sqlite3數(shù)據(jù)庫中,這里我提供一個思路,可以將execl另存為csv文件,大部分?jǐn)?shù)據(jù)庫也可以直接到處csv格式的文件,然后我們用記事本打開csv文件就會發(fā)現(xiàn)里面就是inert into table values();可以直接放入values的部分,可以用java程序寫一個批量插入語句即可制作sqlite3 db數(shù)據(jù)庫文件;
11.制作好的sqlite3 db數(shù)據(jù)庫文件應(yīng)該放在項目的assets文件夾或者res/raw文件夾中,然后在app啟動的過程中將數(shù)據(jù)庫用java io流復(fù)制到data/data/packagename/database目錄中(注意,如果你的db數(shù)據(jù)庫文件較大,請放在內(nèi)存卡或者其他外存中);
12.如果你不想自己在sd卡上面的數(shù)據(jù)庫被普通文件瀏覽器(android)直接掃描到,可以在sd中新建一個文件夾,并以”.“開頭,這樣的文件夾會被大部分的文件瀏覽器過濾掉不顯示;
13.為了防止你的db數(shù)據(jù)庫文件被其他有心人獲取,你也可以將自己的數(shù)據(jù)庫的后綴偽裝成其他文件,例如.mp3,.dat之類的,但是需要注意的是,db文件會在應(yīng)用打包生成apk的時候被壓縮(可以有效減少apk的體積),如果是mp3之類的文件的話,則不會被壓縮,經(jīng)筆者測試,改為.dat格式也是可以被壓縮的,或者將db文件復(fù)制到sd卡的時候再改名為其他后綴;
14.如果數(shù)據(jù)庫中的信息比較敏感,大家也可以在加密數(shù)據(jù)之后再存入數(shù)據(jù)庫,取數(shù)據(jù)的時候在應(yīng)用內(nèi)解密,當(dāng)然網(wǎng)上還有一些其他的加密手段,但是這些加密無一例外的都會犧牲掉更多相應(yīng)時間和內(nèi)存資源,所以大家在規(guī)劃app的時候必須自己考慮清楚。
android數(shù)據(jù)庫操作優(yōu)化內(nèi)容先介紹到這里,如果還有其他相關(guān)android數(shù)據(jù)庫的知識問題可隨時瀏覽本網(wǎng)站,或者咨詢android培訓(xùn)的問題,我們隨時為您解答。
【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點和對其真實性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請在30日內(nèi)與聯(lián)系我們,我們會予以更改或刪除相關(guān)文章,以保證您的權(quán)益!