Android 引用外部數(shù)據(jù)庫(一)

有現(xiàn)成的數(shù)據(jù)庫油湖,需要直接引入到項目中使用。

#準(zhǔn)備

在開始之前我們要確認(rèn)現(xiàn)有的數(shù)據(jù)庫的表結(jié)構(gòu)和字段信息等领跛。(注意要看清楚數(shù)據(jù)庫的大小乏德,后面有用)

#第一步

將外部數(shù)據(jù)庫拷貝到項目中的 assets文件夾中,如圖

#第二步

在你要使用數(shù)據(jù)庫之前將數(shù)據(jù)庫拷貝到 /data/data/包名/databases/ 目錄下。
通過獲取數(shù)據(jù)庫的大小判斷一下是否已經(jīng)拷貝完成喊括。

代碼

public static void copyDbFile(Context context, String db_name) {
    InputStream in = null;
    FileOutputStream out = null;
    //String path = "/data/data/" + context.getPackageName() + "/databases/";
    File filePath = context.getDatabasePath(db_name);
    //spUtils 是為了防止多次拷貝
    if (!SharePreferenceUtils.getBoolean(GlobalContent.COPE_SUCCESS,false)){
        try {
            in = context.getAssets().open(db_name); // 從assets目錄下復(fù)制
            out = new FileOutputStream(filePath);
            int length = -1;
            byte[] buf = new byte[1024];
            while ((length = in.read(buf)) != -1) {
                out.write(buf, 0, length);
            }
            out.flush();
            SharePreferenceUtils.putBoolean(GlobalContent.COPE_SUCCESS,true);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (in != null) in.close();
                if (out != null) out.close();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }
    }
}

#第三步

這時就可以開始查庫了

SqlLiteHelper sqlLiteHelper = new SqlLiteHelper(getContext(), "mySql.db", null, 1);
SQLiteDatabase readableDatabase = sqlLiteHelper.getReadableDatabase();

try {
        Cursor query = readableDatabase.query("message", new String[]{"_id", "message"}, null, null, null, null, null, limit);
        boolean b = query.moveToFirst();
        while (!query.isLast()) {
            int id = query.getInt(query.getColumnIndex("_id"));
            String message = query.getString(query.getColumnIndex("message"));
            mDataList.add(new LoveMessageBean(id, message));
            query.moveToNext();
        }
        query.close();
        Logger.i("mDataList : "+ mDataList.size());
    }catch (Exception e){
        UiUtils.showToast(getContext(),"error");
    }

到這里已經(jīng)成功的把外部數(shù)據(jù)庫拷貝到項目中胧瓜,并且開始 CRUD 了。
以上的方法郑什,是做簡單也是最原始的方法府喳,之后會嘗試使用第三方的工具來查詢,如 GreenDao LitePal 等蘑拯。

在Android開發(fā)中使用數(shù)據(jù)庫進(jìn)行存儲查詢等操作是基本功钝满,推薦可以看看以下文章:

  1. 郭神的LitePal 系列文章 Android數(shù)據(jù)庫高手秘籍
  2. Android 數(shù)據(jù)庫對比 傳送門

查看數(shù)據(jù)庫的工具:Sqlitebrowser
下載地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市申窘,隨后出現(xiàn)的幾起案子弯蚜,更是在濱河造成了極大的恐慌,老刑警劉巖偶洋,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熟吏,死亡現(xiàn)場離奇詭異,居然都是意外死亡玄窝,警方通過查閱死者的電腦和手機(jī)牵寺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恩脂,“玉大人帽氓,你說我怎么就攤上這事×┛椋” “怎么了黎休?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長玉凯。 經(jīng)常有香客問我势腮,道長,這世上最難降的妖魔是什么漫仆? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任捎拯,我火速辦了婚禮,結(jié)果婚禮上盲厌,老公的妹妹穿的比我還像新娘署照。我一直安慰自己,他們只是感情好吗浩,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布建芙。 她就那樣靜靜地躺著,像睡著了一般懂扼。 火紅的嫁衣襯著肌膚如雪禁荸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天,我揣著相機(jī)與錄音赶熟,去河邊找鬼品嚣。 笑死,一個胖子當(dāng)著我的面吹牛钧大,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播罩旋,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼啊央,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了涨醋?” 一聲冷哼從身側(cè)響起瓜饥,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎浴骂,沒想到半個月后乓土,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡溯警,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年趣苏,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片梯轻。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡食磕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出喳挑,到底是詐尸還是另有隱情彬伦,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布伊诵,位于F島的核電站单绑,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏曹宴。R本人自食惡果不足惜搂橙,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望浙炼。 院中可真熱鬧份氧,春花似錦、人聲如沸弯屈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽资厉。三九已至厅缺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背湘捎。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工诀豁, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人窥妇。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓舷胜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親活翩。 傳聞我的和親對象是個殘疾皇子烹骨,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,072評論 25 707
  • 空調(diào)屋里坐,雪糕嘴上叼材泄。 躺臥自隨便沮焕,電視更換頻。 零食堆如山拉宗,健身不可缺峦树。 能知今日福,憐惜萬年何旦事?
    華客魯俊閱讀 220評論 0 3
  • “感謝讓我遇見你魁巩。” “假如沒有遇見我會怎樣姐浮?”歪赢,閑聊時,她發(fā)出了這樣的提問单料。 我也一時語塞埋凯,文不對題答道: “就...
    不隨便雪糕閱讀 242評論 0 0
  • 1 梅子是個能力很強(qiáng)的女孩白对,從十四歲開始就自己打工賺錢零花,大學(xué)里所有的費(fèi)用换怖,都是自己做生意賺的甩恼。 只可...
    曾素妍閱讀 351評論 4 6
  • 衡關(guān)飛騏駿,將送故人行沉颂。 胡鯉隨葉橫的隊伍行軍条摸,途中因風(fēng)寒而體力不支,伏在葉橫手下兵士背上走了一程铸屉。梧姑娘兀自為他...
    漪付閱讀 261評論 2 4