Java Android Room存储库-获取用户

Java Android Room存储库-获取用户,java,android,android-room,Java,Android,Android Room,如何从SQLite DB using Room获取用户 DAO-用户DAO: @Query("SELECT * FROM users WHERE id =:userID") Users getUser(int userID); 用户存储库-用户类 public Users getUser(final String username) { return DatabaseClient.getInstance(context).getAppDatabase().usersDao().getUs

如何从SQLite DB using Room获取用户

DAO-用户DAO:

@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;
 }
}
你的刀类

@Query("SELECT * FROM users WHERE id =:userID")
Users getUser(int userID);

@Query("SELECT * FROM users")
List<Users> getAll();

@Insert
void insert(Users users);
@Query(“从用户中选择*,其中id=:userID”)
用户getUser(int userID);
@查询(“从用户中选择*)
List getAll();
@插入
无效插入(用户);
你的片段或活动

用户列表如果从“回收器”视图中单击“特定用户”,则可以获取模型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);
 }
公共用户getUser(int userId) { 返回DatabaseClient.getInstance(context.getAppDatabase()) .usersDao().getUser(用户名); } 公共列表getAllUser() { 返回DatabaseClient.getInstance(上下文).getAppDatabase()。 usersDao().getAll(); } 公开作废插入() { 用户user1=新用户(); user1.setUserName(“杰克”); 用户1.设置用户地址(“美国”); DatabaseClient.getInstance(上下文).getAppDatabase().usersDao().insert(user1); }
limit结果->@Query(“SELECT*FROM users,其中id=:userID limit 1”)在ur dao中参数类型为int,但在ur存储库中与其他参数类型不同。类型不匹配。最好使用相同的类型