Приложение продолжает останавливаться при вызове вспомогательного класса базы данных - PullRequest
0 голосов
/ 09 октября 2018

это мой класс databaseHelper

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;
import java.util.List;

import static android.R.attr.key;
import static android.os.Build.VERSION_CODES.N;


public class DatabaseHelper extends  SQLiteOpenHelper{

    private static final int DATABASE_VERSION = 1;
    private static final String DATABASE_NAME = "SADER";
    private static final String TABLE_NOTES = "notes";
    private static final String KEY_ID = "id";
    private static final String KEY_TITLE = "title";
    private static final String KEY_CONTENT = "content";

    SQLiteDatabase db;

    public DatabaseHelper(Context context){
        super(context,DATABASE_NAME,null, DATABASE_VERSION);
        db = getWritableDatabase();
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_NOTES_TABLE = "CREATE TABLE " + TABLE_NOTES + " ( "
                + KEY_ID + " INTEGER PRIMARY KEY, "
                + KEY_TITLE + " TEXT, "
                +KEY_CONTENT + " TEXT, "
                + ")";
        db.execSQL(CREATE_NOTES_TABLE);
    }

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

Каждый раз, когда я вызываю этот класс с помощью DatabaseHelper db = new DatabaseHelper(this);, приложение останавливается !!

Что я могу сделать и где я могу найтиошибка ??

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Всегда окружайте try / catch, чтобы изолировать ошибку.В общем, некоторая ошибка синтаксиса SQL

try {

    DatabaseHelper db = new DatabaseHelper(this);
} catch (Exception e) {
    Log.d("DatabaseHelper", e.getMessage());
}
0 голосов
/ 09 октября 2018

Вы добавляете дополнительный символ , в строку оператора CREATE TABLE:

String CREATE_NOTES_TABLE = "CREATE TABLE " + TABLE_NOTES + " ( "
        + KEY_ID + " INTEGER PRIMARY KEY, "
        + KEY_TITLE + " TEXT, "
        +KEY_CONTENT + " TEXT, "
        + ")";

удалите его, чтобы он стал:

String CREATE_NOTES_TABLE = "CREATE TABLE " + TABLE_NOTES + " ( "
        + KEY_ID + " INTEGER PRIMARY KEY, "
        + KEY_TITLE + " TEXT, "
        +KEY_CONTENT + " TEXT "
        + ")";

Чтобы минимизировать будущие ошибки,добавьте Log.d, чтобы проверить правильность вашей строки следующим образом:

String CREATE_NOTES_TABLE = ...;

Log.d("DatabaseHelper", "CREATE_NOTES_TABLE = 
 + CREATE_NOTES_TABLE);
...