Skip to content

Commit 42c5800

Browse files
committed
Add: some demo
1 parent e3ce4dc commit 42c5800

32 files changed

Lines changed: 245 additions & 75 deletions

app/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
/build
2+
/schemas

app/build.gradle

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@ android {
1313
versionName deps.versions.app_module_name
1414

1515
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
16+
17+
// https://stackoverflow.com/questions/44322178/room-schema-export-directory-is-not-provided-to-the-annotation-processor-so-we/
18+
javaCompileOptions {
19+
annotationProcessorOptions {
20+
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]
21+
}
22+
}
1623
}
1724

1825
compileOptions {
@@ -67,6 +74,10 @@ dependencies {
6774
implementation deps.arch.lifecycle.common_java8
6875
implementation deps.arch.lifecycle.reactivestreams
6976

77+
implementation deps.arch.room.runtime
78+
annotationProcessor deps.arch.room.compiler
79+
implementation deps.arch.room.rxjava2
80+
7081
implementation deps.rx.java
7182
implementation deps.rx.android
7283
implementation deps.rx.lifecycle

arch/src/main/java/com/artshell/arch/storage/db/AbsUserDatabase.java renamed to app/src/main/java/com/artshell/misc/arch/AbsUserDatabase.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package com.artshell.arch.storage.db;
1+
package com.artshell.misc.arch;
22

33
import android.arch.persistence.room.Database;
44
import android.arch.persistence.room.RoomDatabase;
55

6-
import com.artshell.arch.storage.db.dao.AbsUserDao;
7-
import com.artshell.arch.storage.db.entity.User;
6+
import com.artshell.misc.arch.dao.AbsUserDao;
7+
import com.artshell.misc.arch.entity.User;
88

99
/**
1010
* @author artshell on 2018/7/9

arch/src/main/java/com/artshell/arch/storage/db/CountryDatabase.java renamed to app/src/main/java/com/artshell/misc/arch/CountryDatabase.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package com.artshell.arch.storage.db;
1+
package com.artshell.misc.arch;
22

33
import android.arch.persistence.room.Database;
44
import android.arch.persistence.room.RoomDatabase;
55

6-
import com.artshell.arch.storage.db.dao.CountryDao;
7-
import com.artshell.arch.storage.db.entity.City;
6+
import com.artshell.misc.arch.dao.CountryDao;
7+
import com.artshell.misc.arch.entity.City;
88

99
@Database(entities = {City.class}, version = 1)
1010
public abstract class CountryDatabase extends RoomDatabase {
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.artshell.misc.arch;
2+
3+
import android.arch.persistence.room.Database;
4+
import android.arch.persistence.room.RoomDatabase;
5+
6+
import com.artshell.misc.arch.dao.OperateDao;
7+
import com.artshell.misc.arch.entity.User;
8+
9+
@Database(entities = {User.class}, version = 1)
10+
public abstract class OperateDatabase extends RoomDatabase {
11+
abstract OperateDao operate();
12+
}

arch/src/main/java/com/artshell/arch/storage/db/PetDatabase.java renamed to app/src/main/java/com/artshell/misc/arch/PetDatabase.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
package com.artshell.arch.storage.db;
1+
package com.artshell.misc.arch;
22

33
import android.arch.persistence.room.Database;
44
import android.arch.persistence.room.RoomDatabase;
55

6-
import com.artshell.arch.storage.db.dao.RawDao;
7-
import com.artshell.arch.storage.db.dao.UserPetDao;
8-
import com.artshell.arch.storage.db.dao.UserPetDao2;
9-
import com.artshell.arch.storage.db.entity.Pet;
10-
import com.artshell.arch.storage.db.entity.User;
6+
import com.artshell.misc.arch.dao.RawDao;
7+
import com.artshell.misc.arch.dao.UserPetDao;
8+
import com.artshell.misc.arch.dao.UserPetDao2;
9+
import com.artshell.misc.arch.entity.Pet;
10+
import com.artshell.misc.arch.entity.User;
1111

1212
@Database(entities = {Pet.class, User.class}, version = 1)
1313
public abstract class PetDatabase extends RoomDatabase {

arch/src/main/java/com/artshell/arch/storage/db/dao/AbsUserDao.java renamed to app/src/main/java/com/artshell/misc/arch/dao/AbsUserDao.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
package com.artshell.arch.storage.db.dao;
1+
package com.artshell.misc.arch.dao;
22

33
import android.arch.persistence.room.Dao;
44
import android.arch.persistence.room.Query;
55
import android.arch.persistence.room.Transaction;
66

7-
import com.artshell.arch.storage.db.AbsUserDatabase;
8-
import com.artshell.arch.storage.db.entity.User;
7+
import com.artshell.misc.arch.AbsUserDatabase;
8+
import com.artshell.misc.arch.entity.User;
99

1010
import java.util.List;
1111

@@ -23,6 +23,6 @@ public AbsUserDao(AbsUserDatabase db) {
2323
}
2424

2525
@Transaction
26-
@Query("SELECT id, name FROM user")
26+
@Query("SELECT id, name, lastName FROM user")
2727
public abstract Flowable<List<User>> getUsers();
2828
}

arch/src/main/java/com/artshell/arch/storage/db/dao/CountryDao.java renamed to app/src/main/java/com/artshell/misc/arch/dao/CountryDao.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
package com.artshell.arch.storage.db.dao;
1+
package com.artshell.misc.arch.dao;
22

33
import android.arch.lifecycle.LiveData;
44
import android.arch.persistence.room.Dao;
55
import android.arch.persistence.room.Insert;
66
import android.arch.persistence.room.OnConflictStrategy;
77
import android.arch.persistence.room.Query;
88

9-
import com.artshell.arch.storage.db.entity.City;
9+
import com.artshell.misc.arch.entity.City;
1010

1111
import java.util.List;
1212

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package com.artshell.misc.arch.dao;
2+
3+
import android.arch.persistence.room.Dao;
4+
import android.arch.persistence.room.Delete;
5+
import android.arch.persistence.room.Insert;
6+
import android.arch.persistence.room.OnConflictStrategy;
7+
import android.arch.persistence.room.Query;
8+
import android.arch.persistence.room.Update;
9+
10+
import com.artshell.misc.arch.entity.NameTuple;
11+
import com.artshell.misc.arch.entity.User;
12+
13+
import java.util.List;
14+
15+
@Dao
16+
public interface OperateDao {
17+
18+
/* =============== Insert ============== */
19+
20+
@Insert(onConflict = OnConflictStrategy.REPLACE)
21+
void insertArray(User... users);
22+
23+
@Insert
24+
void insertArray(User user, List<User> list);
25+
26+
@Insert
27+
long insert(User user);
28+
29+
@Insert
30+
long[] insertList(User[] users);
31+
32+
@Insert
33+
List<Long> insertList(List<User> users);
34+
35+
/* =============== Update ============== */
36+
@Update
37+
void update(User user);
38+
39+
@Update
40+
int update(User... users);
41+
42+
/* =============== Delete ============== */
43+
@Delete
44+
int delete(User... users);
45+
46+
47+
/* =============== Query ============== */
48+
/**
49+
* Use this POJO in your query method
50+
* @see NameTuple
51+
* @return
52+
*/
53+
@Query("SELECT name, lastName FROM user")
54+
List<NameTuple> loadTupe();
55+
56+
@Query("SELECT name, lastName FROM user WHERE id IN (:regions)")
57+
List<NameTuple> loadTupeRegions(List<Integer> regions);
58+
}

arch/src/main/java/com/artshell/arch/storage/db/dao/RawDao.java renamed to app/src/main/java/com/artshell/misc/arch/dao/RawDao.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
package com.artshell.arch.storage.db.dao;
1+
package com.artshell.misc.arch.dao;
22

33
import android.arch.lifecycle.LiveData;
44
import android.arch.persistence.db.SupportSQLiteQuery;
55
import android.arch.persistence.room.Dao;
66
import android.arch.persistence.room.RawQuery;
77

8-
import com.artshell.arch.storage.db.entity.User;
9-
import com.artshell.arch.storage.db.entity.UserEmbedded;
10-
import com.artshell.arch.storage.db.entity.UserOfPets;
11-
import com.artshell.arch.storage.db.entity.UserPoJo;
8+
import com.artshell.misc.arch.entity.User;
9+
import com.artshell.misc.arch.entity.UserEmbedded;
10+
import com.artshell.misc.arch.entity.UserOfPets;
11+
import com.artshell.misc.arch.entity.UserPoJo;
1212

1313
import java.util.List;
1414

0 commit comments

Comments
 (0)