Не удается получить базу данных для создания - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь создать базу данных, но когда я открываю обозреватель файлов в приложении, базы данных не отображаются, и папка, в которой она должна быть, отсутствует, но, вероятно, база данных никогда не создавалась. Ниже мой код. Любая помощь приветствуется

DatabaseHelper.java

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


public class DatabaseHelper extends SQLiteOpenHelper {
        public static final String DATABASE_NAME = "Student.db";
        public static final String TABLE_NAME = "student_table";
        public static final String COL_1 = "ID";
        public static final String COL_2 = "NAME";
        public static final String COL_3 = "I1Q1";
        public static final String COL_4 = "I1Q2";
        public static final String COL_5 = "I2Q1";
        public static final String COL_6 = "I2Q2";
        public static final String COL_7 = "I3Q1";
        public static final String COL_8 = "I3Q2";
        public static final String COL_9 = "I4Q1";
        public static final String COL_10 = "I4Q2";
        public DatabaseHelper(Context context) {
            super(context, DATABASE_NAME, null, 1);
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL("create table " + TABLE_NAME +" (ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,I1Q1 TEXT,I1Q2 TEXT,I2Q1 TEXT,I2Q2 TEXT,I3Q1 TEXT,I3Q2 TEXT,I4Q1 TEXT,I4Q2 TEXT)");
        }

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

Основная активность.java

public class MainActivity extends AppCompatActivity {
    DatabaseHelper myDb;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myDb = new DatabaseHelper(this);
    }
}

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Как ответил Скемелио, вам нужно выполнить любую задачу, используя базу данных для ее фактического создания.

Хороший совет - использовать ORM вместо того, чтобы писать весь код для базы данных самостоятельно. Я рекомендую использовать Номер

0 голосов
/ 12 ноября 2018

Вы создали объект DatabaseHelper в onCreate(), но еще не использовали свой SQLiteDatabase. Вот почему база данных никогда не создавалась.

Позвоните myDb.getWrittableDatabase() в onCreate(), и ваша база данных будет создана после.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...