как подключить LiveData
настроил Room хочу подключить LiveData, но не понимаю как это сделать помогите пожалуйста разобраться
модель user
@Entity
public class User {
@PrimaryKey
public int uid;
@ColumnInfo(name = "first_name")
public String firstName;
@ColumnInfo(name = "last_name")
public String lastName;
}
userDao
@Dao
public interface UserDao {
@Query("SELECT * FROM user")
User getAll();
@Query("SELECT * FROM user WHERE uid = :uid")
User getByUid(int uid);
/* @Query("SELECT * FROM user WHERE uid IN (:userIds)")
List<User> loadAllByIds(int[] userIds);
/* @Query("SELECT * FROM user WHERE first_name LIKE :first AND " +
"last_name LIKE :last LIMIT 1")*/
@Insert
void insertAll(User user);
@Update
void update(User user);
@Delete
void delete(User user);
}
AppDatabase
@Database(entities = {User.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
public abstract UserDao userDao();
}
App
public class App extends Application {
final String TAG ="myLog";
public static App instance;
private AppDatabase database;
@Override
public void onCreate(){
super.onCreate();
//Log.d(TAG, "help");
instance = this;
database = Room.databaseBuilder(this, AppDatabase.class, "database")
.build();
}
public static App getInstance(){
return instance;
}
public AppDatabase getDatabase(){
return database;
}
}
MainActivity
public class MainActivity extends AppCompatActivity {
final String TAG ="myLog";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
test();
test1();
test2();
}
// записывает данные в базу
public void test(){
new Thread(new Runnable() {
@Override
public void run() {
AppDatabase db = App.getInstance().getDatabase();
UserDao userDao = db.userDao();
User user = new User();
user.uid=2;
user.firstName ="dasf";
user.lastName ="asdf";
userDao.insertAll(user);
}
}).start();
}
// читает данные из базы
public void test1() {
new Thread(new Runnable() {
@Override
public void run() {
AppDatabase db = App.getInstance().getDatabase();
UserDao userDao = db.userDao();
User user1 = userDao.getByUid(2);
String vdf = user1.firstName;
TextView textView = (TextView) findViewById(R.id.hel);
textView.setText(vdf);
// Log.d(TAG, vdf);
}
}).start();
}
// обновляет данные из базы
public void test2(){
new Thread(new Runnable() {
@Override
public void run() {
AppDatabase db = App.getInstance().getDatabase();
UserDao userDao = db.userDao();
User user = new User();
user.uid=2;
user.firstName ="Alex";
userDao.update(user);
}
}).start();
}
}