Created
December 1, 2017 10:40
-
-
Save bennofs/d4c1a4d457eb345b335502986ff2904d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package io.bennofs.androidplayground; | |
import android.arch.persistence.room.ColumnInfo; | |
import android.arch.persistence.room.Dao; | |
import android.arch.persistence.room.Database; | |
import android.arch.persistence.room.Delete; | |
import android.arch.persistence.room.Entity; | |
import android.arch.persistence.room.Insert; | |
import android.arch.persistence.room.PrimaryKey; | |
import android.arch.persistence.room.Query; | |
import android.arch.persistence.room.Room; | |
import android.arch.persistence.room.RoomDatabase; | |
import android.support.v7.app.AppCompatActivity; | |
import android.os.Bundle; | |
import java.util.List; | |
import static android.arch.persistence.room.OnConflictStrategy.REPLACE; | |
@Entity | |
class User { | |
@PrimaryKey | |
private int uid; | |
@ColumnInfo(name = "first_name") | |
private String firstName; | |
@ColumnInfo(name = "last_name") | |
private String lastName; | |
public User(int uid, String firstName, String lastName) { | |
this.uid = uid; | |
this.firstName = firstName; | |
this.lastName = lastName; | |
} | |
public int getUid() { | |
return uid; | |
} | |
public void setUid(int uid) { | |
this.uid = uid; | |
} | |
public String getFirstName() { | |
return firstName; | |
} | |
public void setFirstName(String firstName) { | |
this.firstName = firstName; | |
} | |
public String getLastName() { | |
return lastName; | |
} | |
public void setLastName(String lastName) { | |
this.lastName = lastName; | |
} | |
@Override | |
public String toString() { | |
return "User{" + | |
"uid=" + uid + | |
", firstName='" + firstName + '\'' + | |
", lastName='" + lastName + '\'' + | |
'}'; | |
} | |
} | |
@Dao | |
interface UserDao { | |
@Query("SELECT * FROM user") | |
List<User> getAll(); | |
@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") | |
User findByName(String first, String last); | |
@Insert(onConflict = REPLACE) | |
void insertAll(User... users); | |
@Delete | |
void delete(User user); | |
} | |
@Database(entities = {User.class}, version = 1) | |
abstract class AppDatabase extends RoomDatabase { | |
public abstract UserDao userDao(); | |
} | |
public class MainActivity extends AppCompatActivity { | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
final AppDatabase db = Room.databaseBuilder(getApplicationContext(), | |
AppDatabase.class, "database-name").build(); | |
new Thread(new Runnable() { | |
@Override | |
public void run() { | |
db.userDao().insertAll(new User(1, null, "lastname")); | |
System.out.println("first name: " + db.userDao().getAll().get(0).getFirstName()); | |
} | |
}).start(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment