2012-05-25 93 views
0

我有一個擴展名爲.s3db的數據庫文件,它是使用SQLite Administrator創建的。我想用我的android應用程序連接到數據庫。我已將我的數據庫放置在資產文件夾中。我需要編寫哪些代碼才能打開數據庫?SQLite數據庫外部附件

+0

你嘗試使用Google這個話題? – waqaslam

+0

雅,但它提供了我的解決方案,其中的數據庫是使用Java中的語句創建的......但我的數據庫已經創建,但它沒有打開..... –

+0

http://www.reigndesign.com/blog/使用你自己的SQLite數據庫在android應用程序/ – waqaslam

回答

0

正如之前搜索,其結果是,在安裝軟件後,我們應該複製我們的數據庫是assets文件夾到/data/data/your_package/文件夾,然後輕鬆使用它。爲此,我使用下面的代碼在運行時複製數據庫。

if (!new File("/data/data/" + this.getPackageName() 
      + "/database.sqlite").exists()) { 
     try { 
      FileOutputStream out = new FileOutputStream("data/data/" 
        + this.getPackageName() + "/database.sqlite"); 
      InputStream in = getAssets().open("databases/dic.db"); 

      byte[] buffer = new byte[1024]; 
      int readBytes = 0; 

      while ((readBytes = in.read(buffer)) != -1) 
       out.write(buffer, 0, readBytes); 

      in.close(); 
      out.close(); 
     } catch (IOException e) { 
     } 
    } 

您應該將此代碼放在您的MainActivity的onCreate函數中。您可以在整個項目中輕鬆使用自己的數據庫。要訪問你的數據庫,你可以使用代碼如下:

SQLiteDatabase sqliteDB = SQLiteDatabase.openOrCreateDatabase(
       "/data/data/" + this.getPackageName() + "/database.sqlite", 
       null); 

Cursor cursor = sqliteDB.rawQuery("SELECT * FROM table", null); // example of query 

享受吧:)

0

這裏有一些完整的教程,展示一步一步的訪問存儲在資產文件夾數據庫的過程:


use-existing-sqlite-database-in-android


using-your-own-sqlite-database


順便說一句,如果你想使用手動創建的數據庫(這將是在SD卡)剛剛訪問它想:

File dbfile = new File("/sdcard/Your_db_File"); 
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile, null); 
相關問題