2019独角兽企业重金招聘Python工程师标准>>>

本来想查一下Android最新的数据存储知识,意外发现:官方推荐使用Room代替SQLite,那就学习一下把。

Room由三部分组成

  1. Database

  2. Entity

  3. DAO

安装

详见这里

Database
@Database(entities = {User.class}, version = 1)public abstract class AppDatabase extends RoomDatabase {    public abstract UserDao userDao();}
Entity
@Entitypublic class User {    @PrimaryKey    public int uid;    @ColumnInfo(name = "first_name")    public String firstName;    @ColumnInfo(name = "last_name")    public String lastName;}
DAO
@Daopublic interface UserDao {    @Query("SELECT * FROM user")    List getAll();    @Query("SELECT * FROM user WHERE uid IN (:userIds)")    List 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);}
使用
AppDatabase db = Room.databaseBuilder(getApplicationContext(),        AppDatabase.class, "database-name").build();

下面是官方提到的注意事项:

Note: If your app runs in a single process, you should follow the singleton design pattern when instantiating an AppDatabase object. Each RoomDatabase instance is fairly expensive, and you rarely need access to multiple instances within a single process.

If your app runs in multiple processes, include enableMultiInstanceInvalidation() in your database builder invocation. That way, when you have an instance of AppDatabase in each process, you can invalidate the shared database file in one process, and this invalidation automatically propagates to the instances of AppDatabase within other processes.

参考文献

  • Save data in a local database using Room
  • Android Room with a view(需要借助代理)
  • Android Persistence(需要借助代理)
  • Android Architecture Components
  • Save data using SQLite
  • Android Sunflower

转载于:https://my.oschina.net/u/219974/blog/2877228

更多相关文章

  1. Android-Toast的使用方法详解
  2. android官方技术文档翻译——aar 格式
  3. Android官方文档training中英文翻译目录大全:29篇已翻译,45篇未翻
  4. WebRTC-M68-官方编译文档-Android'
  5. Android官方文档-AsyncTask
  6. mediacodec编解码官方解释
  7. 【android】第三方集成之——微信登录
  8. Android官方开发文档Training系列课程中文版:高效显示位图之管理
  9. Google官方教程:Android平板界面适配之屏幕尺寸限定符

随机推荐

  1. Android(安卓)属性动画工作原理
  2. Android消息机制——ThreadLocal(Android
  3. android典型代码系列(二十六)------App w
  4. start of WindowManagerService
  5. Android放大镜实现的两种方式
  6. Android webview doesn't display web pa
  7. Android语言国际化values资源文件命名规
  8. Android的AlertDialog的6种使用情景
  9. android系统提供的几种颜色Color
  10. Android AsyncTask实例