Android studio与SQL表数据库浏览器的连接
直截了当: 我正在Android studio中制作一个测验应用程序。我想得到的问题(和答案),将填补应用程序从SQL表,我在数据库浏览器为SQLite 我的问题是如何将这两者联系起来(而不必在android studio中重新输入所有这些问题) 我有一个类似于结构{ID,qusetion,answer}的东西,我只指向我想从表中获取的ID号,它填充了android studio中的数组 我希望这是有意义的:)Android studio与SQL表数据库浏览器的连接,android,sqlite,android-studio,connect,Android,Sqlite,Android Studio,Connect,直截了当: 我正在Android studio中制作一个测验应用程序。我想得到的问题(和答案),将填补应用程序从SQL表,我在数据库浏览器为SQLite 我的问题是如何将这两者联系起来(而不必在android studio中重新输入所有这些问题) 我有一个类似于结构{ID,qusetion,answer}的东西,我只指向我想从表中获取的ID号,它填充了android studio中的数组 我希望这是有意义的:) 关于你可以把每个问题和答案一行一行地放在一个文件中,用一个特定的字符分隔 例: 并读
关于你可以把每个问题和答案一行一行地放在一个文件中,用一个特定的字符分隔 例:
并读取该文件,并在第一次打开应用程序时将其全部插入数据库。假设您能够从DB Browser导出到.sql文件(包括
创建表
语句,因为您将从零开始创建新的数据库),您可以使用此导出的文件在应用程序中重新创建数据库
通过重写该方法,可以执行以下操作:
@Override
public void onCreate(SQLiteDatabase db) {
// Open the raw SQL file
InputStream inputStream = context.getResources().openRawResource(R.raw.mydb);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
// Read the file
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
reader.close();
// Pump the statements into the database
String queries = sb.toString()
for (String query : queries.split(";")) {
db.execSQL(query);
}
}
将
mydb
替换为/res/raw
中sql文件的任何名称,我建议首先阅读Android文档。请注意,Stack Overflow旨在帮助解决特定的编程问题,而不是像这样的更广泛的情况,因此也可以查看一下,或者,如果您已经在DB Browser中创建了结构和数据,您可以将其导出为原始.sql文件,将其放入/res/raw,然后在数据库处理程序的onCreate
方法中运行该.sql文件。IOUtils不是来自android的类,如果您提到它,您还应该放一个编译链接或其他东西。非常正确,这就是我直接从另一个问题中得出的结论:)将更新为更合适的文件读取解决方案。
@Override
public void onCreate(SQLiteDatabase db) {
// Open the raw SQL file
InputStream inputStream = context.getResources().openRawResource(R.raw.mydb);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
// Read the file
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
reader.close();
// Pump the statements into the database
String queries = sb.toString()
for (String query : queries.split(";")) {
db.execSQL(query);
}
}