Created
December 1, 2017 09:51
-
-
Save bennofs/ab6d9503342936b78fbe9331f48c1271 to your computer and use it in GitHub Desktop.
This file contains 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; | |
@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; | |
} | |
} | |
@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 | |
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")); | |
} | |
}).start(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment