DatabaseHelper

 avatar
hacker98
plain_text
6 months ago
3.5 kB
1
Indexable
main
package com.example.chatappdemo;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {

    // Tên cơ sở dữ liệu và phiên bản
    private static final String DATABASE_NAME = "ChatApp.db";
    private static final int DATABASE_VERSION = 1;

    // Tên bảng
    private static final String TABLE_MYINFO = "Myinfo";
    private static final String TABLE_CONVERSATION = "Conversation";
    private static final String TABLE_MESS = "Mess";
    private static final String TABLE_SENT_REQUEST= "SentRequest";
    private static final String TABLE_RECEIVE_REQUEST= "ReceiveRequest";

    // Câu lệnh tạo bảng Myinfo
    private static final String CREATE_TABLE_MYINFO = "CREATE TABLE " + TABLE_MYINFO + "("
            + "myIP TEXT PRIMARY KEY,"
            + "name TEXT,"
            + "publicKey TEXT,"
            + "privateKey TEXT" + ")";

    // Câu lệnh tạo bảng Conversation với thêm trường conver_id
    private static final String CREATE_TABLE_CONVERSATION = "CREATE TABLE " + TABLE_CONVERSATION + "("
            + "conver_id INTEGER PRIMARY KEY AUTOINCREMENT," // Khóa chính cho bảng Conversation
            + "IPreceive TEXT,"
            + "name TEXT,"
            + "last_mess TEXT,"
            + "last_mess_time TEXT,"
            + "keyEncrypt128 TEXT,"
            + "keyEncrypt256 TEXT,"
            + "algorithm TEXT" + ")";

    // Câu lệnh tạo bảng Mess
    private static final String CREATE_TABLE_MESS = "CREATE TABLE " + TABLE_MESS + "("
            + "mess_id INTEGER PRIMARY KEY AUTOINCREMENT,"
            + "conver_id INTEGER,"
            + "sender_ip TEXT,"
            + "mess_text TEXT,"
            + "time TEXT,"
            + "algorithm Text,"
            + "FOREIGN KEY(conver_id) REFERENCES " + TABLE_CONVERSATION + "(conver_id)" + ")";
    private static final String CREATE_TABLE_SENT_REQUEST = "CREATE TABLE " + TABLE_SENT_REQUEST + "("
            + "IPSent TEXT," // Khóa chính cho bảng Conversation
            + "name TEXT,"
            + "status TEXT" + ")";
    private static final String CREATE_TABLE_RECEIVE_REQUEST = "CREATE TABLE " + TABLE_RECEIVE_REQUEST + "("
            + "IPRequest TEXT," // Khóa chính cho bảng Conversation
            + "name TEXT,"
            + "publicKey TEXT" + ")";
    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // Tạo các bảng khi cơ sở dữ liệu được khởi tạo lần đầu
        db.execSQL(CREATE_TABLE_MYINFO);
        db.execSQL(CREATE_TABLE_CONVERSATION);
        db.execSQL(CREATE_TABLE_MESS);
        db.execSQL(CREATE_TABLE_SENT_REQUEST);
        db.execSQL(CREATE_TABLE_RECEIVE_REQUEST);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // Xóa bảng nếu đã tồn tại và tạo lại
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_MYINFO);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONVERSATION);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_MESS);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_SENT_REQUEST);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_RECEIVE_REQUEST);
        onCreate(db);
    }
}

Editor is loading...
Leave a Comment