我被困在一個情況是,我不知道如何使用Android的如何使用與Android
- sqlite的文件在哪裏把它sqlite的文件?和
- 我們如何整合它?
我知道我可以從data/data/PACKAGE/databases/
文件夾中獲取它,但是當有新項目時我找不到數據庫文件夾。在哪裏放置我的文件擴展名爲.sqlite
。 任何答案將不勝感激。 謝謝。
我被困在一個情況是,我不知道如何使用Android的如何使用與Android
我知道我可以從data/data/PACKAGE/databases/
文件夾中獲取它,但是當有新項目時我找不到數據庫文件夾。在哪裏放置我的文件擴展名爲.sqlite
。 任何答案將不勝感激。 謝謝。
謝謝Arlem您回答。我已經看過這種教程,但我不明白我已經使用Firefox插件中的SQLiteManager創建了一個數據庫,我應該在該項目中保留該數據庫文件,以便android可以檢測到這是數據庫文件,另一件事是我不確定android是否允許帶.sqlite擴展名的文件。 – user2218900
如果烏拉圭回合使用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卡:)
先生我正在使用SQLite管理器加載項,我有數據庫文件擴展名爲.sqlite,但我不知道在哪裏可以將該文件放在我的項目中使用它。也想知道如果android支持文件.sqlite或它需要.db – user2218900
時,有一個新的項目,我無法找到數據庫文件夾
原因是安全性。如果將數據庫放置在內部存儲器中,那麼數據庫僅在創建該數據庫的應用程序中可見,因此更準確你.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);
你需要把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.
復位亞行,然後檢查 –
請參見本教程:http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ – Reda