如何使用 Room 从 SQLite 数据库获取用户?
DAO - UserDAO:
@Query("SELECT * FROM users WHERE id =:userID")
Users getUser(int userID);
用户存储库 - 用户类
public Users getUser(final String username)
{
return DatabaseClient.getInstance(context).getAppDatabase().usersDao().getUser(username);
}
我想要获取用户的类:
Users users = new UserClass(context, view).getUser(this.username);
/** How to access to users.getId ???? */
最佳答案
你的模型类使用这个字段。当你插入用户时。每个用户都有unic id来插入表
class Users{
@PrimaryKey(autoGenerate = true)
private int id;
@ColumnInfo(name = "username")
private String userName;
@ColumnInfo(name = "address")
private String address;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address =address;
}
}
你的 Dao 类
@Query("SELECT * FROM users WHERE id =:userID")
Users getUser(int userID);
@Query("SELECT * FROM users")
List<Users> getAll();
@Insert
void insert(Users users);
您的 fragment 或 Activity
您从回收器 View 中单击特定用户的用户列表,您将获得模型ID传递给此方法的特定用户模型。您可以获得特定用户的详细信息。
public Users getUser(int userId)
{
return DatabaseClient.getInstance(context).getAppDatabase()
.usersDao().getUser(username);
}
public List<Users> getAllUser()
{
return DatabaseClient.getInstance(context).getAppDatabase().
usersDao().getAll();
}
public void insert()
{
User user1=new User();
user1.setUserName("jack");
user1.setUserAddress("usa");
DatabaseClient.getInstance(context).getAppDatabase().usersDao().insert(user1);
}
关于java - Android Room 存储库 - 获取用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58833822/