SQLiteOpenHelper的輕量級封裝:SQLBrite

jopen 9年前發布 | 33K 次閱讀 SQLBrite Android開發 移動開發

SQLBrite是SQLiteOpenHelper的輕量級封裝。引入反應流語義SQL操作。

用法

Wrap aSQLiteOpenHelperinstance withSqlBrite:

SqlBrite db = SqlBrite.create(helper);

TheSqlBrite.createQuerymethod is similar toSQLiteOpenHelper.rawQueryexcept it takes an additional parameter of table(s) on which to listen for changes. Subscribe to the returnedObservable<Query>which will immediately notify with aQueryto run.

Observable<Query> users = db.createQuery("users", "SELECT * FROM users");
users.subscribe(new Action1<Query>() {
  @Override public void call(Query query) {
    Cursor cursor = query.run();
    // TODO parse data...
  }
});

https://github.com/square/sqlbriteUnlike a traditionalrawQuery, updates to the specified table(s) will trigger additional notifications for as long as you remain subscribed to the observable. This means that when you insert, update, or delete data, any subscribed queries will update with the new data instantly.
final AtomicInteger queries = new AtomicInteger();
users.subscribe(new Action1<Query>() {
  @Override public void call(Query query) {
    queries.getAndIncrement();
  }
});
System.out.println("Queries: " + queries.get()); // Prints 1

db.insert("users", createUser("jw", "Jake Wharton"));
db.insert("users", createUser("mattp", "Matt Precious"));
db.insert("users", createUser("strong", "Alec Strong"));

System.out.println("Queries: " + queries.get()); // Prints 4

項目主頁:http://www.baiduhome.net/lib/view/home/1424601406888

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!