Bài tập

Sử dụng Sqlite trong Android như thế nào hiệu quả nhất?

Huy Erick

Bài viết được sự cho phép của tác giả Lê Hồng Kỳ Thông qua bài viết này, chúng ta sẽ cùng tìm hiểu về SQLite trong Android và cách sử dụng nó một cách hiệu...

Bài viết được sự cho phép của tác giả Lê Hồng Kỳ

Thông qua bài viết này, chúng ta sẽ cùng tìm hiểu về SQLite trong Android và cách sử dụng nó một cách hiệu quả. SQLite là một cơ sở dữ liệu mã nguồn mở được sử dụng để lưu trữ dữ liệu dạng văn bản trên thiết bị di động.

SQLite hỗ trợ tất cả các tính năng của cơ sở dữ liệu quan hệ và không đòi hỏi thiết lập kết nối đặc biệt như JDBC hay ODBC. Điều này làm cho SQLite trở thành một lựa chọn lý tưởng cho việc quản lý thông tin trên các nền tảng di động như Android, IOS và Windows Phone.

SQLite trong Android - Các bước thực hiện

Bước 1: Tạo lớp kế thừa từ SQLiteOpenHelper

Đầu tiên, chúng ta cần tạo một lớp kế thừa từ lớp SQLiteOpenHelper để thao tác với cơ sở dữ liệu. Trong lớp này, chúng ta sẽ xác định các phương thức để tạo, cập nhật, xoá và truy vấn dữ liệu.

public class TenLop extends SQLiteOpenHelper {
    // Phương thức khởi tạo
    // Phương thức onCreate
    public void onCreate(SQLiteDatabase db) {
        String sql = "câu lệnh tạo bảng";
        db.execSQL(sql);
    }
    // Các phương thức khác như thêm dữ liệu, cập nhật dữ liệu, xoá dữ liệu và truy vấn dữ liệu
}

Xây dựng phương thức thêm dữ liệu

public void tenPhuongThuc([tham số]) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put(tenCot1, giaTri1);
    cv.put(tenCot2, giaTri2);
    // Thêm nhiều cột và giá trị khác nếu cần
    db.insert(tenBang, null, cv);
}

Xây dựng phương thức cập nhật dữ liệu

public void tenPhuongThuc([tham số]) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put(tenCot1, giaTri1);
    cv.put(tenCot2, giaTri2);
    // Cập nhật nhiều cột và giá trị khác nếu cần
    String whereClause = "tenCot1 = ?";
    String[] whereArgs = {giaTri1};
    db.update(tenBang, cv, whereClause, whereArgs);
}

Xây dựng phương thức xoá dữ liệu

public void tenPhuongThuc([tham số]) {
    SQLiteDatabase db = this.getWritableDatabase();
    String whereClause = "tenCot1 = ?";
    String[] whereArgs = {giaTri1};
    db.delete(tenBang, whereClause, whereArgs);
}

Xây dựng phương thức truy vấn dữ liệu không có điều kiện

public void tenPhuongThuc([tham số]) {
    String sql = "SELECT * [or tenCot1, ...] FROM tenBang";
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor c = db.rawQuery(sql, null);
    if (c != null) {
        c.moveToFirst();
        do {
            // Truy vấn dữ liệu sử dụng c.getString(viTriCot);
        } while (c.moveToNext());
    }
}

Xây dựng phương thức truy vấn dữ liệu có điều kiện

public void tenPhuongThuc([tham số]) {
    SQLiteDatabase db = this.getReadableDatabase();
    String[] columns = {"tenCot1", "tenCot2", ...};
    String selection = "tenCot1 = ?";
    String[] selectionArgs = {giaTri1};
    String groupBy = null;
    String having = null;
    String orderBy = null;
    Cursor c = db.query(tenBang, columns, selection, selectionArgs, groupBy, having, orderBy);
    if (c != null) {
        c.moveToFirst();
        do {
            // Truy vấn dữ liệu sử dụng c.getString(vị trí cột);
        } while (c.moveToNext());
    }
}

### Bước 2: Sử dụng lớp đã tạo trong activity

Trong activity, chúng ta cần khai báo đối tượng của lớp đã tạo ở Bước 1 để truy xuất các phương thức thêm, cập nhật, xoá hoặc truy vấn dữ liệu.

```java
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_qlsv);
    TenLop tenDoiTuong = new TenLop();
}

Trong đó:

  • TenLop là tên lớp đã xây dựng ở Bước 1.
  • tenDoiTuong là tên đối tượng. Sử dụng đối tượng này để truy xuất các phương thức thêm, cập nhật, xoá hoặc truy vấn dữ liệu.

SQLite trong Android - Ví dụ mẫu xây dựng ứng dụng quản lý danh sách khách hàng

Ứng dụng quản lý danh sách khách hàng có một số chức năng như sau:

  • Màn hình thêm mới khi người dùng chạm vào "Add New".
  • Khi người dùng chạm vào "SAVE CONTACT", quay về màn hình chính.
  • Để chỉnh sửa hoặc xoá thông tin khách hàng, người dùng chạm vào khách hàng và chọn thao tác "Edit Contact" hoặc "Delete Contact" từ menu.

Ngoài ra, trong bài viết gốc còn cung cấp ví dụ về các bước thực hiện chi tiết, bao gồm tạo java class, thiết kế layout, thiết kế menu và viết xử lý cho activity.

SQLite trong Android - Bài tập thực hành

Bạn có thể thực hành xây dựng ứng dụng ToDoList (Danh sách công việc cần thực hiện) sử dụng SQLite. Danh sách công việc được lưu trữ trong cơ sở dữ liệu với cấu trúc như sau:

Field Name   Type        Description
id           Integer     Khóa chính (Primary Key), kiểu số nguyên tự tăng (AutoIncrement)
job          Text        Nội dung công việc cần nhớ
date         Text        Thời gian công việc cần phải thực hiện

Ứng dụng sẽ có giao diện cho phép người dùng thêm, chỉnh sửa, xoá và hiển thị danh sách công việc. Chi tiết về thiết kế giao diện và xử lý ứng dụng được đề cập trong bài viết gốc.

Bài viết gốc được đăng tải tại giasutinhoc.vn.

Bạn có thể tham khảo thêm các bài viết khác về lập trình di động trên trang web của chúng tôi.

1