如何在android中使用sqlite文件
我陷入了一种情况,我不知道如何在android中使用sqlite文件如何在android中使用sqlite文件,android,database,sqlite,Android,Database,Sqlite,我陷入了一种情况,我不知道如何在android中使用sqlite文件 放在哪里?及 我们如何整合它 我知道我可以从data/data/PACKAGE/databases/文件夹中获取它,但当有新项目时,我找不到databases文件夹。在何处放置扩展名为.sqlite的文件。 任何答复都将不胜感激。 谢谢。这可能会对您有所帮助,我想: 如果你使用eclipse,你可以下载这个插件,只需复制粘贴一个.jar文件:) 通过就行了 这 您可以在DDMS中查看您的数据库 通常Sqlite数据存储在 /
data/data/PACKAGE/databases/
文件夹中获取它,但当有新项目时,我找不到databases文件夹。在何处放置扩展名为.sqlite
的文件。
任何答复都将不胜感激。
谢谢。这可能会对您有所帮助,我想:
如果你使用eclipse,你可以下载这个插件,只需复制粘贴一个.jar文件:) 通过就行了 这 您可以在DDMS中查看您的数据库 通常Sqlite数据存储在
//data/data/<Your-Application-Package-Name>/databases/<your-database-name>
data/data/com.example.db/databases
现在您可以在/sdcard的数据库文件夹中看到创建的数据库
如果您将您的数据库存储在内存中,则还可以将您的数据库从内存复制到SD卡:)
当有新项目时,我找不到数据库文件夹
原因是安全。若将数据库放在内部存储器中,使数据库仅在创建它的应用程序中可见,则更准确。您的.db文件存储在
//data/data/<Your-Application-Package-Name>/databases/<your-database-name>
data/data/com.example.db/databases
因此,如果您想在另一个项目(具有不同的包)中打开它,则不会有您的文件
我的档案放在哪里
如果您想在多个应用程序之间实现并共享一个db,可以将文件保存到外部存储器中,但现在有一些关于敏感数据安全的问题
但你还有另一个选择。您可以为多个应用程序共享一个db,但因此必须在manifest.xml中为每个应用程序指定sharedUserId
android:sharedUserId="com.example"
然后,若你们想从另一个应用程序连接到db,你们需要使用托管应用程序的包
Context cntxt = this.createPackageContext("hosting.app.package.name",
Context.CONTEXT_INCLUDE_CODE);
您需要将sqlite文件放在项目的assets文件夹中,并将该文件复制到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.
重置adb,然后查看本教程:感谢Arlem给出您的答案。我看过这类教程,但我不明白我使用Firefox插件中的SQLItemManager创建了一个数据库,我应该在我的项目中保存该数据库文件,以便android可以检测到这是数据库文件,另一件事是我不确定android是否允许扩展名为.sqlite的文件。先生,我正在使用sqlite管理器插件,我有扩展名为.sqlite的数据库文件,但我不知道在我的项目中可以在哪里使用该文件。还想知道android是支持file.sqlite还是需要.db