Android

Lưu trữ dữ liệu với SQLite trong Android

Giới thiệu

Tiếp nối bài viết mảng kiến thức lưu trữ dữ liệu trong Android. Bài trước chúng ta đã được tiếp xúc với Lưu trữ dữ liệu với Shared Preferences. Và trong bài viết này tôi sẽ giới thiệu cho các bạn cách lưu trữ dữ liệu sử dụng SQLite.

sqlite-android-0

SQLite là một hệ quản trị cơ sở dữ liệu có quy mô nhỏ, đơn giản, không cần cài đặt, không cần cấu hình. Và được tích hợp sẵn trong Android  từ API 1 và rất dễ sử dụng (chúng ta không cần cài driver  cho SQLite và kết nối thông qua JDBC).

Trang chủ SQLite: https://www.sqlite.org/

Để tiếp thu bài viết một cách tốt nhất yêu cần bạn phải có kiến thức cơ bản về SQL (các câu lệnh tạo bảng, thêm xoá, sửa, và các câu query để lấy dữ liệu).

Source demo sử dụng trong bài viết các bạn có thể download tại đây.

Thao tác với SQLite trong Android

Trong bài viết này tôi sẽ hướng dẫn các bạn các thao tác cơ bản với SQLite trong Android gồm

  • Create Database
  • Create Table
  • Select Data
  • Insert Data
  • Update Data
  • Delete Data

Với ví dụ là Database có tên là DICTIONARY_DB có 1 table là WORD có các trường như dưới đây:

Column Kiểu dữ liệu Ghi chú
id INTEGER Id của word, Khoá chính, trường tự tăng
word TEXT từ
mean TEXT Nghĩa của từ

Trước tiên tôi tạo model có tên Word.java ứng với table Word như sau:

Để sử dụng SQLite trong Android các bạn phải tạo class kế thừa từ class SQLiteDatabaseHelper và implement hai phương thức onCreate và phương thức onUpgrade

Phương thức onCreate

Phương thức onUpgrade

Constructor

Chúng ta thấy rằng phạm vi của contructor tôi để là private bởi vì Database của chúng ta có thể truy cập được bất cứ đâu trong ứng dụng (Activity, Fragment, Service…). Vì vậy tôi sử dụng Design Parttern Singleton để đảm bảo trong ứng dụng có duy nhất một đối tượng DatabaseHelper quản lý việc thao tác trên SQLite.

Insert Data

Sử dụng đối tượng ContentValues để put các giá trị ứng với tên colum và sử dụng phương thức insert của SQLiteDatabase để tiến hành ghi xuống database. Phương thức trả về true nếu insert thành công, ngược lại thất bại.

Select Data

Đối với việc lấy data từ SQLite các bạn có hai phương thức là query()rawQuery()

Hai phương thức này trả về đối tương cursor, từ đối tượng này các bạn có thể lấy ra data của từng row.

Lấy từ theo id:

Lấy tất cả các từ có trong databse:

Tổng số row có trong database:

Update Data

Đối việc với update data hay delete chúng ta làm giống như với việc insert. SQLiteDatabaseHelper có cung cấp cho chúng ta các phương thức insert, update và delete.

Phương thức trả về số dòng ảnh hưởng.

Delete Data

Giống với Update thì phương thức này cũng return về số dòng ảnh hưởng.

Sử dụng

Tiếp theo tôi sẽ demo các phương thức đã viết ở trên trong file MainActivity.java

Các bạn có thể tìm thấy database tại đường dẫn

Database DICTIONARY_DB tôi đã tạo

sqlite-android-1

Kết luận

Ở ví dụ trên tôi chỉ tạo một Table để demo, tuy nhiên các bạn có thể tạo nhiều table khác nhau tuỳ thuộc vào project, ứng dụng của các bạn. Hy vọng bài viết giúp ích cho các bạn. Nếu có bất cứ thắc mắc có thể để lại bình luận bên dưới hoặc liên hệ qua fanpage Eitguide Android để được giải đáp.

6 thoughts on “Lưu trữ dữ liệu với SQLite trong Android”

  1. bạn có thể giải thích từng dòng code dc ko bạn, bạn quăng nguyên cục code ra đó mình mới học chả hiểu gi hết @@

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.