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

Cách sử dụng kiểu dữ liệu TINYTEXT trong Android SQLite

Giới thiệu

SQLite chấp nhận TINYTEXT như alias của TEXT (affinity TEXT). Demo tạo cột name kiểu TINYTEXT.

Các bước

Bước 1 & 2: Project & Layout

Giao diện CRUD chuẩn.

Bước 3: MainActivity.java

Code xử lý nhập/xuất.

Bước 4: DatabaseHelper.java - Dùng TINYTEXT

package com.example.andy.myapplication;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;

class DatabaseHelper extends SQLiteOpenHelper {
    static final String DB_NAME = "salaryDatabase5";
    static final String TABLE = "SalaryDetails";

    DatabaseHelper(Context ctx) { super(ctx, DB_NAME, null, 1); }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TINYTEXT affinity = TEXT
        db.execSQL("CREATE TABLE " + TABLE +
                "(id INTEGER PRIMARY KEY, name TINYTEXT, salary BIGINT, datetime DEFAULT CURRENT_TIMESTAMP)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int o, int n) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE);
        onCreate(db);
    }

    boolean insert(String n, String s) {
        SQLiteDatabase db = getWritableDatabase();
        ContentValues cv = new ContentValues();
        cv.put("name", n); cv.put("salary", s);
        db.replace(TABLE, null, cv);
        return true;
    }

    ArrayList getAllContacts() {
        SQLiteDatabase db = getReadableDatabase();
        ArrayList list = new ArrayList<>();
        Cursor res = db.rawQuery(
            "SELECT (id || ' : ' || name || ' : ' || salary || ' : ' || datetime) AS fullname FROM " + TABLE, null);
        while (res.moveToNext()) {
            list.add(res.getString(res.getColumnIndex("fullname")));
        }
        return list;
    }

    boolean update(String n, String s) {
        getWritableDatabase().execSQL("UPDATE " + TABLE + " SET name='" + n + "', salary='" + s + "'");
        return true;
    }

    boolean delete() {
        getWritableDatabase().execSQL("DELETE FROM " + TABLE);
        return true;
    }
}

Giải thích

  • TINYTEXT trong SQLite chỉ là tên gọi, thực chất lưu như TEXT (không giới hạn 255 ký tự như MySQL).
  • SQLite bỏ qua độ dài khai báo, cho phép lưu chuỗi dài tùy ý.

Kết quả

Cách sử dụng kiểu dữ liệu TINYTEXT trong Android SQLite

Nhập tên, lưu, làm mới → ListView hiển thị bình thường.