Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Lấy phiên bản SQLite với sqlite_version() trong Android

Hàm sqlite_version()

Trả về phiên bản thư viện SQLite đang chạy trên thiết bị (ví dụ: "3.39.4"). Hữu ích để debug, kiểm tra tính năng hỗ trợ.

DatabaseHelper.java

public ArrayList<String> getAllContacts() {
    ArrayList<String> list = new ArrayList<>();
    SQLiteDatabase db = getReadableDatabase();
    
    // sqlite_version() không cần tên bảng, nhưng FROM table cần cho cursor
    Cursor cursor = db.rawQuery(
        "SELECT sqlite_version() as version FROM " + TABLE_NAME + " LIMIT 1", null);

    if (cursor.moveToFirst()) {
        String version = cursor.getString(0);
        list.add("SQLite Version: " + version);
    }
    cursor.close();
    return list;
}

Cách khác: Không cần bảng

// Truy vấn trực tiếp, không cần bảng
Cursor cursor = db.rawQuery("SELECT sqlite_version()", null);
if (cursor.moveToFirst()) {
    String version = cursor.getString(0);
    Log.d("SQLite", "Version: " + version);
}
cursor.close();

Kiểm tra phiên bản trong code Java

// Cách 1: SQLiteDatabase
String version = SQLiteDatabase.sqliteVersion(); // Static method
Log.d("SQLite", "Version: " + version);

// Cách 2: System property (API 11+)
String version2 = System.getProperty("sqlite.version");

Kết quả

Lấy phiên bản SQLite với sqlite_version() trong Android

Hiển thị phiên bản SQLite (ví dụ: 3.39.4) lặp lại cho mỗi bản ghi (do SELECT từ bảng).

Tính năng theo phiên bản SQLite

Phiên bảnTính năng mới
3.38.0->> JSON operator, MATERIALIZED CTE
3.35.0Math functions (sin, cos, sqrt...)
3.31.0Generated columns, window functions cải tiến
3.25.0Window functions (ROW_NUMBER, RANK...)
3.24.0UPSERT (INSERT ON CONFLICT)
3.15.0JSON1 extension built-in

Lưu ý Android

  • Phiên bản SQLite tùy thuộc vào Android OS version, không thể cập nhật riêng.
  • Android 7.0 (API 24): SQLite 3.18+
  • Android 10 (API 29): SQLite 3.28+
  • Android 14 (API 34): SQLite 3.43+
  • Dùng Room library để trừu tượng hóa và dùng SQLite mới hơn qua bundled artifact.