1. 程式人生 > >Android訪問已存在的SQLite資料庫

Android訪問已存在的SQLite資料庫

上篇文章講的是用DatabaseHelper新建一個數據庫再進行增刪改查,但大多數情景是資料庫已經存在了,那怎麼去訪問呢?思路是先判斷data/data/<package_name>/databases目錄下資料庫是否存在,如果不存在,用流操作把res/raw或assets目錄下的資料庫拷貝到data/data/<package_name>/databases目錄,接下來就跟新建完資料庫一樣一樣了。

核心程式碼

private void getData(){
        final String DATABASE_PATH="data/data/"+ this.getPackageName() + "/databases/";
        String databaseFile=DATABASE_PATH+"mydb.db";
        //建立databases目錄(不存在時)
        File file=new File(DATABASE_PATH);
        if(!file.exists()){
            file.mkdirs();
        }
        //判斷資料庫是否存在
        if (!new File(databaseFile).exists()) {
            //把資料庫拷貝到/data/data/<package_name>/databases目錄下
            try {
                FileOutputStream fileOutputStream = new FileOutputStream(databaseFile);
                //資料庫放assets目錄下
                //InputStream inputStream = getAssets().open("mydb.db");
                //資料庫方res/rew目錄下
                InputStream inputStream=getResources().openRawResource(R.raw.mydb);
                byte[] buffer = new byte[1024];
                int readBytes = 0;

                while ((readBytes = inputStream.read(buffer)) != -1)
                    fileOutputStream.write(buffer, 0, readBytes);

                    inputStream.close();
                    fileOutputStream.close();
                } catch (IOException e) {
            }
        }
        db = SQLiteDatabase.openOrCreateDatabase(databaseFile, null);
    }


相關推薦

Android加密有的sqlite資料庫---sqlcipher

 android中資料庫的加密,通過百度都可以看到,大多都使用的是sqlcipher,好處之一是因為:1.它是開源的,免費的。2.它的運用非常簡單,方便,跟sqlite的操作一樣,只不過是換成了sqlcipher的包而已。 好的,廢話不多說,網上的文章加密資料庫,基本上都是

Android訪問存在的SQLite資料庫

上篇文章講的是用DatabaseHelper新建一個數據庫再進行增刪改查,但大多數情景是資料庫已經存在了,那怎麼去訪問呢?思路是先判斷data/data/<package_name>/databases目錄下資料庫是否存在,如果不存在,用流操作把res/raw或

Android 資料儲存之 SQLite資料庫儲存

轉載自:https://www.cnblogs.com/woider/p/5136734.html ----------------------------------------SQLite資料庫---------------------------------------------- SQLite是一

基於三層架構下的公共資料訪問方法(Sqlite資料庫

作者總結了一下,使用Winform的三層架構做窗體應用程式,在資料訪問方面,有用到純sql語句方法、引數方法、儲存過程方法。 那麼什麼是三層架構呢? UI---存放Form窗體---(使用者所關心的) 業務邏輯層----存放業務傳遞(BLL) 資料訪問層----底層的資料處理方法(DAL) 資料公共

Android 第三章 SQLite 資料庫

1,使用execSQL API 操作資料庫。      步驟1,建立Class MyOpenHelper實現介面SQLiteOpenHelper,複寫建構函式、onCreate、onUpgrade方法;      步驟2,在建立MyOpenHelper物件myOpenHelp

Android開發案例:SQLite資料庫和ListView列表結合

        SQLite是Android系統內建的輕量級的關係型資料庫,執行速度非常快;ListView是Android中最常用的的控制元件之一,幾乎所有的應用程式都會用到它。本文通過一個例項介紹如何通過ListView列表展示資料以及實現SQLite資料庫的增刪改查,

android學習之通過sqlite資料庫實現記事本

最近學習了資料庫,於是寫了一個記事本來體驗了一下資料庫因為最近的事情比較多,所以介面或者有些設計不是那麼完美,但是作為一個可擴充套件的筆記本demo也已經是足夠了,這個例子實現的是,可以註冊多個使用者,然後每個使用者都對應有一個記事本記錄,ok,程式碼: package c

解決Android中的SQLite資料庫併發訪問

我曾經寫過一篇很簡短的文章,闡述了執行緒安全的訪問android sqlite資料庫。樣例程式可以在這裡獲取到。 假設你已經有一個自己的SQLiteOpenHelper。 public class DatabaseHelper extends SQLi

Android 中 匯入存在的 sqlite資料庫時出現的問題

1》剛開始時我匯入sqlite資料庫放在了asserts下面,我按照網上的例子最後發現是我的“包名”出了問題,我現在用Android studio 以前用的時eclipse  ,所以習慣性的我就應用了mainfaset下面的包名了,所以不管我怎麼讀取sqlite檔案總是打不開

怎麼通過web伺服器訪問MYSQL資料庫,使其資料同步到android SQLite資料庫

      通過web伺服器訪問MYSQL資料庫有以下幾個過程: 2、連線資料庫。 3、訪問資料庫      過程2、3 具體步驟: 1、在Myeclipse下新建一個web專案,為了好統一管理在WEB-INF下建一個web.xml用來載入伺服器啟動時的配置資訊。這

通過WEB伺服器訪問MYSQL,並且資料同步到android SQLite資料庫

2、連線資料庫。 3、訪問資料庫      過程2、3 具體步驟: 1、在Myeclipse下新建一個web專案,為了好統一管理在WEB-INF下建一個web.xml用來載入伺服器啟動時的配置資訊。這個檔案是由大量的<servlet></servle

通過web伺服器訪問MYSQL資料庫,使其資料同步到android SQLite資料庫

      通過web伺服器訪問MYSQL資料庫有以下幾個過程: 2、連線資料庫。 3、訪問資料庫      過程2、3 具體步驟: 1、在Myeclipse下新建一個web專案,為了好統一管理在WEB-INF下建一個web.xml用來載入伺服器啟動時的配

無Root許可權的Android手機訪問Sqlite資料庫等私有資料

adb shell //進入命令模式 run-as 包名 //獲取檢視非root裝置debug應用的沙盒資料的許可權 cd databases //切換到資料庫目錄下(也可以切換到別的目錄,如快取目錄

orcle資料庫修改資料的列的資料型別

要想修改資料庫的某一列的資料型別,該欄位不能有資料,否則無法修改;plsql中會出現如下錯誤 倘若有資料,不能直接在該列上修改欄位型別;但還是有方法實現同樣的目的--------轉移資料到新的一列 1.建立一個臨時列 alter table 表名 add 修改的欄位名 欄位型別; 2.拷貝資料到臨

Android核心技術-day03-01-建立SQLite資料庫

MyDBOpenHelper.java package com.gaozewen.createdb; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.

Android SQLite資料庫demo

demo連結:https://download.csdn.net/download/meixi_android/10710400   建立資料庫版本v.1 /** * 作者:created by meixi * 郵箱:[email protected] * 日期

Android Sqlite資料庫升級時注意事項

在app版本升級時,同時升級了Sqlite資料庫的版本號的話,如果需要保留之前的資料,需要在onUpgrade方法中做處理。這裡記錄一下在onUpgrade處理升級的時候的一些注意事項。 先看下常用的SQLiteOpenHelper的方法: public class Database

android-一個檔案搞定SQLite資料庫的建立與更新以及增刪查改

一、SQLite簡介 1、簡介 Android嵌入式關係型資料庫——SQLite。SQLite 是一款輕量級的關係型資料庫,它運算速度快, 佔用資源很少,通常只需要幾百 K 的記憶體就足夠了,因而特別適合在移動裝置上使用。SQLite 支援標準的 SQL 語法,還遵循

Android學習筆記——SQLite資料庫案例【商品展示】

簡介 SQLite,是一款輕型的資料庫,是遵守ACID的關係型資料庫管理系統,它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領域專案。它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它佔用資源非常的低,在嵌入式裝置中,可能只需要幾百K的記憶體就夠

Android五種資料儲存方式之SQLite資料庫儲存 載入SD卡資料庫 sql操作 事務 防止SQL注入

資料庫 前言 資料庫儲存 資料庫建立 內建儲存資料庫 外接儲存資料庫 編寫DAO 插入操作 更新操作 刪除操作 查詢操作