hkhoshraftar
8/21/2018 - 7:41 AM

android #room #db #sqlite

android #room #db #sqlite

    implementation 'android.arch.persistence.room:runtime:1.1.1'
    annotationProcessor "android.arch.persistence.room:compiler:1.1.1"
       Thread t2 = new Thread(new Runnable() {
            @Override
            public void run() {


                User user = new User();
                user.firstName = "a";
                user.lastName = "b";

                MyDatabase.getInstance(DbWorksActivity.this)
                        .getUserDao().InsertUser(user);
            }});
@Entity(tableName = "users")
public class User {

    @PrimaryKey(autoGenerate = true)
    public int id;

    @ColumnInfo(name = "user_first_name")
    public String firstName;
    @ColumnInfo(name = "user_last_name")
    public String lastName;

}
@Database(entities = {User.class,Reop.class, UserReopJoin.class}, version = 1)
public abstract class MyDatabase extends RoomDatabase {
    private static final String DB_NAME = "myDatabase.db";
    private static volatile MyDatabase instance;
    static synchronized MyDatabase getInstance(Context context) {
        if (instance == null) {
            instance = create(context);
        }
        return instance;
    }
    private static MyDatabase create(final Context context) {
        return Room.databaseBuilder(
                context,
                MyDatabase.class,
                DB_NAME)
                .fallbackToDestructiveMigration()
                .build();
    }

    public abstract UserDao getUserDao();
    public abstract ReopDao getReopDao();
    public abstract UserReopJoinDao getUserReopJoinDao();
}

@Dao
public interface UserDao {

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    public void InsertUser(User user);

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    public void InsertUserList(List<User> user);

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    public void InserstUserList(User... user);

    @Delete
    public void DeleteUser(User user);

    @Update
    public void UpdateUser(User user);


    @Query("SELECT * FROM users WHERE id = :id")
    public User SelectById(int id);

    @Query("SELECT * FROM users WHERE user_first_name = :fname")
    public User SelectById(String fname);


    @Query("SELECT * FROM users ")
    public List<User> SelectAllUsers();

}