嗨我有自己的sqlite文件并放入assets文件夹里面,里面有多个表。我想查询不同的表并在列表视图中显示它。我搜索了不同的教程,但这让我感到困惑,我将如何调用不同的表格?我是否需要为每个表创建数据模型,是否需要在databasehelper中声明每个表?我总是看到教程,你将创建一个数据库,而不是使用自己的数据库。谢谢
答案 0 :(得分:0)
要使用现有数据库文件(预先填充数据),您可以在github上尝试Android SQLiteAssetHelper。
要准备数据库文件,我建议sqliteman
我将如何调用不同的表?
在SQL查询中指定表名,这是一个非常简单的代码,仅供参考。
public class MyDatabase extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "mydatabase"; // This is the database file under assets/databases/ folder
private SQLiteDatabase readableDB;
private SQLiteDatabase writeableDB;
private static MyDatabase instance;
public static synchronized MyDatabase getInstance(Context context) {
if (instance == null) {
instance = new MyDatabase(context);
}
return instance;
}
private MyDatabase(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
readableDB = getReadableDatabase();
writeableDB = getWritableDatabase();
}
// Suppose tableA has two columns, name and id.
public ArrayList<String> selectNameById(String Id) {
ArrayList<String> result = new ArrayList<String>();
String query = "SELECT name FROM tableA WHERE id=?";
String[] whereArgs = new String[] { Id };
Cursor cursor = readableDB.rawQuery(query, whereArgs);
if (cursor.moveToFirst()) {
do {
Integer nameIndex = cursor.getColumnIndex("name");
String name = cursor.getString(nameIndex);
result.add(name);
} while (cursor.moveToNext());
}
return result;
}
}