2013-04-01 45 views
0

我被困在一個情況是,我不知道如何使用Android的如何使用與Android

  1. sqlite的文件在哪裏把它sqlite的文件?和
  2. 我們如何整合它?

我知道我可以從data/data/PACKAGE/databases/文件夾中獲取它,但是當有新項目時我找不到數據庫文件夾。在哪裏放置我的文件擴展名爲.sqlite。 任何答案將不勝感激。 謝謝。

+0

復位亞行,然後檢查 –

+0

請參見本教程:http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ – Reda

回答

0

如果烏拉圭回合使用eclipseü可以下載這個插件只是一個.jar文件:) 的複製粘貼剛剛經歷 這個Link ,你可以看到你在DDMS數據庫

通常SQLite的數據存儲在

//data/data/<Your-Application-Package-Name>/databases/<your-database-name> 

但是,如果你無法看到它們。 您可以在SD卡直接存儲你的數據庫是這樣的:

static class SQLiteHelper extends SQLiteOpenHelper { 

SQLiteHelper(final Context context) { 
    super(context, Environment.getExternalStorageDirectory() 
      + File.separator + "/DataBase/" + File.separator 
      + DATABASE_NAME, null, DATABASE_VERSION); 
} 

,現在你可以看到在數據庫文件夾中創建數據庫/ SD卡 如果您存儲烏爾內部存儲器DATABSE那麼你也可以從複製烏爾數據庫內部存儲到SD卡:)

+0

先生我正在使用SQLite管理器加載項,我有數據庫文件擴展名爲.sqlite,但我不知道在哪裏可以將該文件放在我的項目中使用它。也想知道如果android支持文件.sqlite或它需要.db – user2218900

0

時,有一個新的項目,我無法找到數據庫文件夾

原因是安全性。如果將數據庫放置在內部存儲器中,那麼數據庫僅在創建該數據庫的應用程序中可見,因此更準確你.db文件存儲在

data/data/com.example.db/databases 

所以如果你想在另一個項目(即有不同封裝)打開它,也不會有你的文件。

在哪裏放置我的文件

如果你想達到和分享更多的應用程序之間的一個分貝,您可以保存文件到外部存儲卡,但現在這裏是關於敏感數據的安全問題。

但你也有另一種選擇。您可以共享一個分貝更多的應用程序,但因爲這,你必須指定sharedUserId爲每個應用程序在你的manifest.xml

android:sharedUserId="com.example" 

,然後如果你想連接從您需要使用包裝的另一個應用程序數據庫託管應用程序。

Context cntxt = this.createPackageContext("hosting.app.package.name", 
       Context.CONTEXT_INCLUDE_CODE); 
0

你需要把sqlite的文件在你的項目的資產文件夾,你應該把這個文件拷貝到需要的位置在SD卡上。希望這可以幫助你。

public DataBaseHelper(Context context) 
    { 
     super(context, DB_NAME, null, 300500);// 1? its Database Version 
     DB_PATH = "/data/data/" + context.getPackageName() + "/databases/"; 
     this.mContext = context; 
    } 

    public void createDataBase() throws IOException 
    { 
     //If database not exists copy it from the assets 

     boolean mDataBaseExist = checkDataBase(); 
     if(!mDataBaseExist) 
     { 
      this.getReadableDatabase(); 
      this.close(); 
      try 
      { 
       //Copy the database from assests 
       copyDataBase(); 
       Log.w(TAG, "createDatabase database created"); 
      } 
      catch (IOException mIOException) 
      { 
       throw new Error("ErrorCopyingDataBase"); 
      } 
     } 
    } 
     //Check that the database exists here: /data/data/your package/databases/Da Name 
     private boolean checkDataBase() 
     { 
      File dbFile = new File(DB_PATH + DB_NAME); 
      //Log.v("dbFile", dbFile + " "+ dbFile.exists()); 
      return dbFile.exists(); 
     } 

     //Copy the database from assets 
     private void copyDataBase() throws IOException 
     { 
      InputStream mInput = mContext.getAssets().open(DB_NAME); 
      String outFileName = DB_PATH + DB_NAME; 
      OutputStream mOutput = new FileOutputStream(outFileName); 
      byte[] mBuffer = new byte[1024]; 
      int mLength; 
      while ((mLength = mInput.read(mBuffer))>0) 
      { 
       mOutput.write(mBuffer, 0, mLength); 
      } 
      mOutput.flush(); 
      mOutput.close(); 
      mInput.close(); 
     } 

     //Open the database, so we can query it 
     public boolean openDataBase() throws SQLException 
     { 
      String mPath = DB_PATH + DB_NAME; 
      //Log.v("mPath", mPath); 
      myDataBase = SQLiteDatabase.openDatabase(mPath, null, SQLiteDatabase.CREATE_IF_NECESSARY); 
      //mDataBase = SQLiteDatabase.openDatabase(mPath, null, SQLiteDatabase.NO_LOCALIZED_COLLATORS); 
      return myDataBase != null; 
     } 

     @Override 
     public synchronized void close() 
     { 
      if(myDataBase != null) 
       myDataBase.close(); 
      super.close(); 
     } 



     // Add your public helper methods to access and get content from the database. 
     // You could return cursors by doing "return myDataBase.query(....)" so it'd be easy 
     // to you to create adapters for your views.