我有一个扩展名为 .s3db 的数据库文件,它是使用 SQLite Administrator 创建的。我想用我的 android 应用程序连接到数据库。我已将我的数据库放在资产文件夹中。打开数据库需要写什么代码?
问问题
2181 次
2 回答
0
以下是一些完整的教程,展示了访问存储在assets文件夹中的数据库的分步过程:
使用现有的sqlite-database-in-android
顺便说一句,如果您想使用手动创建的数据库(将在 sdcard 中),只需像这样访问它:
File dbfile = new File("/sdcard/Your_db_File" );
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile, null);
于 2012-05-25T08:39:56.943 回答
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
好好享受 :)
于 2012-05-25T09:12:10.190 回答