Lovefield Javascript Relational Database
Javascript
246
Database
22
AngularJS
23
White

Cùi Bắp viết ngày 31/03/2016

1. Giới thiệu:

  • Lovefield, một relational database được viết hoàn toàn bởi JavaScript & được phát triển bởi Google.
  • Cung cấp cú pháp truy vấn tương tự SQL
  • Hoạt động trên cross-browser (Hỗ trợ Chrome 37+, Firefox 31+, IE 10+, Safari 5.1+).
  • Lovefield có thể được sử dụng cùng với Angular/Bootstrap/Polymer,..
  • Mình biết tới thư viện này khi coi chuỗi video 100 days of Google Dev.

alt text

2. Hướng dẫn sử dụng:

  • Tải thư viện: Sử dụng 1 trong 3 cách sau.

  • Cách sử dụng:

    • Thêm thư viện vào trang web:
    <script src="bower_components/lovefield/dist/lovefield.min.js"></script>
    
    • Khởi tạo Database có tên là todo, số 1 chính là version của DB.
    var schemaBuilder = lf.schema.create('todo', 1);
    
    • Tạo cấu trúc bảng của DB todo
    schemaBuilder.createTable('Item').
    addColumn('id', lf.Type.INTEGER).
    addColumn('description', lf.Type.STRING).
    addColumn('deadline', lf.Type.DATE_TIME).
    addColumn('done', lf.Type.BOOLEAN).
    addPrimaryKey(['id']).
    addIndex('idxDeadline', ['deadline'], false, lf.Order.DESC);
    
    • Insert bản ghi vào DB và tiến hành truy vấn toàn bộ cơ sở dữ liệu:
    var todoDb;
    var item;
    schemaBuilder.connect().then(function(db) {
      todoDb = db;
      item = db.getSchema().table('Item');
      var row = item.createRow({
        'id': 1,
        'description': 'Get a cup of coffee',
        'deadline': new Date(),
        'done': false
      });
      return db.insertOrReplace().into(item).values([row]).exec();
    }).then(function() {
        return todoDb.select().from(item).where(item.done.eq(false)).exec();
    }).then(function(results) {
        results.forEach(function(row) {
            console.log(row['description'], 'before', row['deadline']);
        });
    });
    

Ngoài ra, Lovefield còn cung cấp cho chúng ta rất nhiều query như Join, Where, Order, các bạn có thể tham khảo thêm ở: https://github.com/google/lovefield/blob/master/docs/spec/04_query.md

3. Thực hành:

Trong bài viết này mình sẽ sử dụng AngularJS 1.x và thư viện Lovefield để tạo một ứng dụng quản lý Task đơn giản.
Dữ liệu Task được lưu trong indexedDB. Mỗi khi có deadline của một task nào đó rơi thời gian hiện tại, sẽ có notification và âm thanh báo tới người dùng. Nhớ chọn allow notification khi truy cập nhé.

alt text

Thử xem dữ liệu đã lưu ra sao trong indexedDB:

alt text

Link Demo

http://euclid1990.github.io/task/

Source Code

(Được viết từ nửa năm trước, do up lên để chạy demo nên có cả thư mục bower_components :joy:)
https://github.com/euclid1990/task

4. Tham khảo:

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Cùi Bắp

16 bài viết.
90 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
71 3
Bài viết này được dịch từ (Link) https://code.facebook.com/ mà theo mình khá hữu ích đối với web developer. Trong hai năm qua, Facebook đã làm việ...
Cùi Bắp viết hơn 1 năm trước
71 3
White
50 9
Bài viết này xin đề cập tới Nginx Load balancing 1. Thế nào Load Balancing Load Balancing hay còn gọi là Cân bằng tải ?? một kỹ thuật thường đượ...
Cùi Bắp viết gần 2 năm trước
50 9
White
18 0
Nhân tiện vừa đọc bài viết liên quan tới OpenCV trên Kipalog, nên em xin giới thiệu về giải thuật sinh ảnh mosaic từ một ảnh gốc. Không hiểu sinh ả...
Cùi Bắp viết hơn 2 năm trước
18 0
Bài viết liên quan
White
3 0
Bài viết này sẽ giới thiệu về phân vùng bảng và chỉ mục trong Oracle Database. Phân vùng giải quyết vấn đề quan trọng trong việc hỗ trợ các bảng r...
Dương Đức Đạt viết hơn 1 năm trước
3 0
White
43 8
Tăng sức mạnh cho javascript với lodash Lần này mình sẽ giới thiệu 1 thư viện javascript vô cùng bá đạo có tên là "lodash]1]", có thể nói nó là LI...
Huy Hoàng Phạm viết hơn 2 năm trước
43 8
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
16 bài viết.
90 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!