Lovefield Javascript Relational Database
Javascript
297
Database
33
AngularJS
24
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.
105 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
86 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 2 năm trước
86 3
White
60 12
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 3 năm trước
60 12
White
19 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 3 năm trước
19 0
Bài viết liên quan
White
1 0
Kotlin giờ là một từ khóa làm điên đảo cả giới lập trình viên đặc biệt là lập trình viên android. Kotlin hiện nay rất phổ biến và cực kì mạnh mẽ, c...
Aragami1408 viết 10 tháng trước
1 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

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


White
{{userFollowed ? 'Following' : 'Follow'}}
16 bài viết.
105 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á!