SQLite là một cơ sở dữ liệu quan hệ, mã nguồn mở, nó được tích hợp sẵn trên hệ điều hành Android, vì vậy bạn có thể sử dụng nó bất cứ lúc nào, và không cần phải cấu hình gì thêm.
Thông thường với các cơ sở dữ liệu như Oracle, MySQL,.. bạn cần phải có thư viện điều khiển (Driver libary), và tạo kết nối JDBC, tuy nhiên với SQLite điều đó là không cần thiết.
2- Nội dung của ví dụ
Giả sử rằng bạn tạo ra một ứng dụng chạy trên thiết bị Android của bạn, ứng dụng này ghi chép lại các ghi chú (Note) trong ngày của bạn. Bạn cần một cấu trúc bảng để lưu trữ các ghi chú đó.
- Tên bảng: Note
Tên cột | Kiểu dữ liệu | Giàng buộc | Mô tả |
Note_Id | int | Primary Key | Khóa chính |
Note_Title | text | Ghi chú ngắn | |
Note_Content | text | Nội dung ghi chú |
Xem trước ví dụ:
3- Các bước để làm việc với SQLite Database
Bạn cần tạo một lớp tiện ích để làm việc với cơ sở dữ liệu SQLite, lớp này nên mở rộng từ lớp SQLiteOpenHelper. Có 2 phương thức quan trọng mà bạn cần phải ghi đè (override) nó là onCreate() và onUpgrade().
- Tạo class MyDatabaseHelper mở rộng từ SQLiteOpenHelper.
- Sau khi mở rộng class của bạn từ SQLiteOpenHelper bạn cần phải ghi đè lên hai phương thức onCreate() và onUpgrage()
- onCreate() - Những là nơi mà chúng ta cần phải viết để tạo bảng. Nó được gọi (called) khi cơ sở dữ liệu được tạo ra.
- onUpgrade() - Phương thức này được gọi khi cơ sở dữ liệu được nâng cấp như thay đổi cấu trúc bảng, thêm giàng buộc cho cơ sở dữ liệu, v..v.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| public class MyDatabaseHelper extends SQLiteOpenHelper { // .... public MyDatabaseHelper(Context context) { super (context, DATABASE_NAME, null , DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // Script to create table. String script = "CREATE TABLE " + TABLE_NOTE + "(" + COLUMN_NOTE_ID + " INTEGER PRIMARY KEY," + COLUMN_NOTE_TITLE + " TEXT," + COLUMN_NOTE_CONTENT + " TEXT" + ")" ; // Execute script. db.execSQL(script); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // Drop table db.execSQL( "DROP TABLE IF EXISTS " + TABLE_NOTE); // Recreate onCreate(db); } // ... } |