栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Android】Room的使用简示

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Android】Room的使用简示

Room的使用简示
依赖

implementation "android.arch.persistence.room:runtime:1.1.1"
annotationProcessor "android.arch.persistence.room:compiler:1.1.1"

Crazy Coding

  • database

LocalDatabase

@Database(
        version = 1,
        exportSchema = false,
        entities = {DbPerson.class}
)
public abstract class LocalDatabase extends RoomDatabase {
    public abstract DbPersonDao dbPersonDao();
}
  • daos

DbPersonDao

@Dao
public interface DbPersonDao {
    @Insert(onConflict = OnConflictStrategy.REPLACe)
    long[] insert(List persons);

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    long insert(DbPerson person);

    @Delete
    void delete(List passPersonList);

    @Delete
    void delete(DbPerson person);

    @Query("DELETE From Person")
    void deleteAll();

    @Update
    void update(DbPerson person);

    @Query("SELECT * From Person Where person_uuid = :uuid")
    DbPerson selectDbPersonByPersonUuid(String uuid);

    @Query("SELECT * From Person")
    List selectDbPersonAll();

}
  • managers

DbManager

public class DbManager {

    private static volatile LocalDatabase db;

    //创建database实例
    public static LocalDatabase init(Context context) {
        if (db == null) {
            //Room和SQLCipher的桥梁
            synchronized (LocalDatabase.class) {
                if (db == null) {
                    //SafeHelperFactory factory = new SafeHelperFactory(KeyManager.getKey().toCharArray());
                    db = Room.databaseBuilder(
                            context.getApplicationContext(),
                            LocalDatabase.class, "local_db.db"
                    )
                            //迁移升级
                            //.openHelperFactory(factory) //打开加密
                            //添加下面这一行
                            //.fallbackToDestructiveMigration()
                            .build();
                }
            }
        }
        return db;
    }

    

    public static LocalDatabase getDatabase() {
        return db;
    }

    //获取唯一id
    public static long getUniqueId() {
        return System.nanoTime() << 10;
    }

    //获取唯一字符串
    public static String getUniqueString() {
        return UUID.randomUUID().toString().replace("-", "");
    }
}

DbPersonManager

public class DbPersonManager {
    private static DbPersonDao dbPersonDao() {
        return DbManager.getDatabase().dbPersonDao();
    }

    

    public static Long insert(DbPerson dbPerson) {
        return dbPersonDao().insert(dbPerson);
    }

    public static void update(DbPerson dbPerson) {
        dbPersonDao().update(dbPerson);
    }

    public static void delete(DbPerson dbPerson) {
        dbPersonDao().delete(dbPerson);
    }

    public static void delete(List dbPersonList) {
        dbPersonDao().delete(dbPersonList);
    }

    public static void deleteAll() {
        dbPersonDao().deleteAll();
    }

    public static DbPerson selectDbPersonByPersonUuid(String uuid) {
        return dbPersonDao().selectDbPersonByPersonUuid(uuid);
    }

    public static List selectDbPersonAll() {
        return dbPersonDao().selectDbPersonAll();
    }
}
  • mos
@Entity(tableName = "Person")
public class DbPerson {
    @NonNull
    @PrimaryKey
    @ColumnInfo(name = "person_uuid")
    private String personUuid;

    @ColumnInfo(name = "person_attribute")
    private String personAttribute;

    @ColumnInfo(name = "person_image")
    private String personImage;

    @ColumnInfo(name = "feature_status")
    private int featureStatus;

    public DbPerson(String personUuid, String personAttribute, String personImage, int featureStatus) {
        this.personUuid = personUuid;
        this.personAttribute = personAttribute;
        this.personImage = personImage;
        this.featureStatus = featureStatus;
    }

    public String getPersonUuid() {
        return personUuid;
    }

    public void setPersonUuid(String personUuid) {
        this.personUuid = personUuid;
    }

    public String getPersonAttribute() {
        return personAttribute;
    }

    public void setPersonAttribute(String personAttribute) {
        this.personAttribute = personAttribute;
    }

    public String getPersonImage() {
        return personImage;
    }

    public void setPersonImage(String personImage) {
        this.personImage = personImage;
    }

    public int getFeatureStatus() {
        return featureStatus;
    }

    public void setFeatureStatus(int featureStatus) {
        this.featureStatus = featureStatus;
    }

    @Override
    public String toString() {
        return "DbPerson{" +
                "personUuid='" + personUuid + ''' +
                ", personAttribute='" + personAttribute + ''' +
                ", personImage='" + personImage + ''' +
                ", featureStatus=" + featureStatus +
                '}';
    }
}

How To Use

  • 初始化
public class MainApplication extends MultiDexApplication {

    @Override
    public void onCreate() {
        super.onCreate();
        ...
        DbManager.init(this);
    }
    ...
}
  • 调用方法
DbPersonManager.insert(dbPerson)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/644566.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号