如何使用database helper类在android中使用现有数据库
我已经创建了一个现有的数据库,我想与我的android应用程序一起使用。我已将该文件夹放入我的资产文件夹中,并且还有DataBaseHelper.java文件。现在,我想检索数据,然后在我的一个活动中显示该数据,例如,在listView中或以任何其他方式显示数据。有人知道我怎么做吗?要实现这一目标,接下来的步骤是什么?以下是一些提示如何使用database helper类在android中使用现有数据库,android,Android,我已经创建了一个现有的数据库,我想与我的android应用程序一起使用。我已将该文件夹放入我的资产文件夹中,并且还有DataBaseHelper.java文件。现在,我想检索数据,然后在我的一个活动中显示该数据,例如,在listView中或以任何其他方式显示数据。有人知道我怎么做吗?要实现这一目标,接下来的步骤是什么?以下是一些提示 在数据库文件上运行以下SQL: 将数据库(我假设是SQLite文件)放入资产中/ 然后,我建议将应用程序中的文件复制到/data/data/your.pack
- 在数据库文件上运行以下SQL:
- 将数据库(我假设是SQLite文件)放入资产中/
- 然后,我建议将应用程序中的文件复制到
中。下面是执行此操作的示例代码:/data/data/your.package.name/databases/
然后可以在DataBaseHelper中打开生成的文件。最简单的方法是使用以下项目
另一种方法是自己管理文件操作,将数据库从资产复制到正确的位置,并确保具有打开数据库文件的正确权限。您可以在下面的url中尝试从资产复制数据库
http://stackoverflow.com/questions/5945196/database-not-copying-from-assets
所以,在我运行您放在那里的查询之后,除了我已经拥有的表之外,我还将拥有android \u元数据,对吗?对于这个示例代码,我将把它放在哪个java文件中?我想把它放到DataBaseHelper.java文件中吗?是的,android需要android_元数据才能出现在DB文件中。是的,您可以将copy方法放入helper,并在用户第一次安装应用程序时执行它(如果没有可用的数据库)。好的,那么一旦我这样做了,我如何使用查询从数据库获取数据,然后在列表视图中显示,例如在我的应用程序的活动中,您知道我如何做到这一点吗?这正是我和我的团队成员难以弄清楚的地方。在这一点之后,它与你通常在安卓系统中所做的没有什么不同。
/**
* Copies your database from your local assets-folder
* to the just created empty database in the
* system folder, from where it can be accessed and handled.
* This is done by transfering bytestream.
**/
private void copyDatabase() throws IOException{
//Open your local db as the input stream
InputStream myInput = context.getAssets().open(DB_NAME);
// Path to the just created empty db
String outFileName = DB_PATH + DB_NAME;
//Open the empty db as the output stream
OutputStream myOutput = new FileOutputStream(outFileName);
//transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer))>0){
myOutput.write(buffer, 0, length);
}
//Close the streams
myOutput.flush();
myOutput.close();
myInput.close();
}
http://stackoverflow.com/questions/5945196/database-not-copying-from-assets