java - Android Room 存储库 - 获取用户

标签 java android android-room

如何使用 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/

相关文章:

android - 访问具有多个接口(interface)的 android room DB 的最佳解决方案是什么?

java - 多模块 Gradle 构建问题 - 找不到与给定名称匹配的资源

JavaFX 媒体播放器仅播放一秒的 MP3

java - 野蝇群休息 Controller

android - Android JSON 中的 SessionExpiredException 错误

android - Cordova 移动应用程序和 Dropbox API v2

安卓房间 : DAOs bigger than 1048576

gdb(GNU 调试器)的 Java API

java - 未引用的方法是否包含在最终的可执行文件中?

android - 如何以 MVVM 模式与小部件中的数据库进行交互