我有一个名为“addresses”的 Room 表,有 15 列。我检索一行并希望将值放入 List<String>,而不是 List<Addresses>。那可能吗?
@Query("SELECT * FROM addresses WHERE myid= :id")
List<String> getAddressAsList(int id);
Run Code Online (Sandbox Code Playgroud)
此外,是否可以像这样将数据库表列名和值一起检索到映射列表 <"column name","value"> 中?
@Query("SELECT * FROM addresses WHERE myid= :id")
List<Map<String, String> getAddressAsList(int id);
Run Code Online (Sandbox Code Playgroud)
您可以使用 SupportSQLiteDatabase,但不能使用 Dao。
假设您在一项活动中,
db = yourRoomDatabase.getInstance(this);
Run Code Online (Sandbox Code Playgroud)
yourDao = db.getYourDao();然后
myAddressList = dao.getAddressList();然后你可以这样做:-
SupportSQLiteDatabase sdb = db.getOpenHelper().getWritableDatabase();
Cursor csr = sdb.query("SELECT * FROM address WHERE myid=?",new String[]{String.value(id)}
Run Code Online (Sandbox Code Playgroud)
然后要获取光标中的列名称列表,您可以使用:-
val columnNames = csr.columnNames
Run Code Online (Sandbox Code Playgroud)
要获取列名和值的映射,您可以使用:-
val columnsAndValues: MutableMap<String,String> = mutableMapOf()
while (csr.moveToNext()) {
for (i: Int in 0..csr.columnCount) {
columnsAndValues.put(csr.columnNames.get(i),csr.getString(i))
}
}
csr.close()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
547 次 |
| 最近记录: |